home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 008a / perl40_2.zip / Y_TAB.C < prev   
C/C++ Source or Header  |  1991-11-28  |  103KB  |  2,558 lines

  1.  
  2. /*  A Bison parser, made from perly.y  */
  3.  
  4. #define    WORD    258
  5. #define    APPEND    259
  6. #define    OPEN    260
  7. #define    SSELECT    261
  8. #define    LOOPEX    262
  9. #define    USING    263
  10. #define    FORMAT    264
  11. #define    DO    265
  12. #define    SHIFT    266
  13. #define    PUSH    267
  14. #define    POP    268
  15. #define    LVALFUN    269
  16. #define    WHILE    270
  17. #define    UNTIL    271
  18. #define    IF    272
  19. #define    UNLESS    273
  20. #define    ELSE    274
  21. #define    ELSIF    275
  22. #define    CONTINUE    276
  23. #define    SPLIT    277
  24. #define    FLIST    278
  25. #define    FOR    279
  26. #define    FILOP    280
  27. #define    FILOP2    281
  28. #define    FILOP3    282
  29. #define    FILOP4    283
  30. #define    FILOP22    284
  31. #define    FILOP25    285
  32. #define    FUNC0    286
  33. #define    FUNC1    287
  34. #define    FUNC2    288
  35. #define    FUNC2x    289
  36. #define    FUNC3    290
  37. #define    FUNC4    291
  38. #define    FUNC5    292
  39. #define    HSHFUN    293
  40. #define    HSHFUN3    294
  41. #define    FLIST2    295
  42. #define    SUB    296
  43. #define    FILETEST    297
  44. #define    LOCAL    298
  45. #define    DELETE    299
  46. #define    RELOP    300
  47. #define    EQOP    301
  48. #define    MULOP    302
  49. #define    ADDOP    303
  50. #define    PACKAGE    304
  51. #define    AMPER    305
  52. #define    FORMLIST    306
  53. #define    REG    307
  54. #define    ARYLEN    308
  55. #define    ARY    309
  56. #define    HSH    310
  57. #define    STAR    311
  58. #define    SUBST    312
  59. #define    PATTERN    313
  60. #define    RSTRING    314
  61. #define    TRANS    315
  62. #define    LISTOP    316
  63. #define    DOTDOT    317
  64. #define    OROR    318
  65. #define    ANDAND    319
  66. #define    UNIOP    320
  67. #define    LS    321
  68. #define    RS    322
  69. #define    MATCH    323
  70. #define    NMATCH    324
  71. #define    UMINUS    325
  72. #define    POW    326
  73. #define    INC    327
  74. #define    DEC    328
  75.  
  76. #line 23 "perly.y"
  77.  
  78. #include "INTERN.h"
  79. #include "perl.h"
  80.  
  81.  
  82. /*SUPPRESS 530*/
  83. /*SUPPRESS 593*/
  84. /*SUPPRESS 595*/
  85.  
  86.  
  87. STAB *scrstab;
  88. ARG *arg4;    /* rarely used arguments to make_op() */
  89. ARG *arg5;
  90.  
  91.  
  92.  
  93. #line 44 "perly.y"
  94. typedef union {
  95.     int    ival;
  96.     char *cval;
  97.     ARG *arg;
  98.     CMD *cmdval;
  99.     struct compcmd compval;
  100.     STAB *stabval;
  101.     FCMD *formval;
  102. } YYSTYPE;
  103.  
  104. #ifndef YYLTYPE
  105. typedef
  106.   struct yyltype
  107.     {
  108.       int timestamp;
  109.       int first_line;
  110.       int first_column;
  111.       int last_line;
  112.       int last_column;
  113.       char *text;
  114.    }
  115.   yyltype;
  116.  
  117. #define YYLTYPE yyltype
  118. #endif
  119.  
  120. #include <stdio.h>
  121.  
  122. #ifndef __STDC__
  123. #define const
  124. #endif
  125.  
  126.  
  127.  
  128. #define    YYFINAL        414
  129. #define    YYFLAG        -32768
  130. #define    YYNTBASE    92
  131.  
  132. #define YYTRANSLATE(x) ((unsigned)(x) <= 328 ? yytranslate[x] : 121)
  133.  
  134. static const char yytranslate[] = {     0,
  135.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  136.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  137.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  138.      2,     2,    79,     2,     2,     2,     2,    73,     2,    85,
  139.      4,     2,    89,    64,    88,     2,     2,     2,     2,     2,
  140.      2,     2,     2,     2,     2,     2,     2,    67,    87,     2,
  141.     65,     2,    66,     2,     2,     2,     2,     2,     2,     2,
  142.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  143.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  144.     90,     2,    91,    72,     2,     2,     2,     2,     2,     2,
  145.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  146.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  147.      2,     2,     3,    71,    86,    80,     2,     2,     2,     2,
  148.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  149.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  150.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  151.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  152.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  153.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  154.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  155.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  156.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  157.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  158.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  159.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  160.      2,     2,     2,     2,     2,     1,     2,     5,     6,     7,
  161.      8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
  162.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  163.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  164.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  165.     48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  166.     58,    59,    60,    61,    62,    63,    68,    69,    70,    74,
  167.     75,    76,    77,    78,    81,    82,    83,    84
  168. };
  169.  
  170. #if YYDEBUG != 0
  171. static const short yyrline[] = { 0,
  172.    106,   113,   120,   122,   127,   129,   131,   137,   146,   151,
  173.    153,   158,   160,   162,   163,   172,   177,   179,   181,   184,
  174.    187,   190,   196,   199,   202,   205,   211,   215,   219,   223,
  175.    227,   266,   293,   300,   305,   307,   311,   313,   317,   319,
  176.    323,   325,   327,   332,   340,   345,   353,   375,   380,   382,
  177.    386,   391,   398,   400,   402,   404,   406,   408,   410,   412,
  178.    418,   420,   429,   431,   433,   435,   437,   439,   441,   443,
  179.    445,   448,   450,   452,   454,   456,   458,   463,   465,   467,
  180.    469,   471,   474,   477,   480,   483,   489,   492,   498,   502,
  181.    504,   506,   509,   511,   513,   515,   518,   522,   526,   531,
  182.    536,   541,   546,   551,   556,   558,   560,   562,   564,   566,
  183.    572,   577,   583,   588,   593,   599,   604,   610,   615,   620,
  184.    622,   625,   627,   629,   631,   633,   639,   641,   644,   649,
  185.    654,   658,   662,   667,   671,   675,   678,   680,   682,   684,
  186.    686,   689,   694,   696,   698,   700,   702,   707,   717,   720,
  187.    723,   727,   732,   737,   740,   744,   746,   748,   750,   752,
  188.    756,   760,   764,   766,   769,   772,   777,   782,   784,   785,
  189.    789,   794,   799,   804,   809,   814,   822,   825,   829,   832,
  190.    837,   840,   845,   847,   858
  191. };
  192.  
  193. static const char * const yytname[] = {     0,
  194. "error","$illegal.","'{'","')'","WORD","APPEND","OPEN","SSELECT","LOOPEX","USING",
  195. "FORMAT","DO","SHIFT","PUSH","POP","LVALFUN","WHILE","UNTIL","IF","UNLESS",
  196. "ELSE","ELSIF","CONTINUE","SPLIT","FLIST","FOR","FILOP","FILOP2","FILOP3","FILOP4",
  197. "FILOP22","FILOP25","FUNC0","FUNC1","FUNC2","FUNC2x","FUNC3","FUNC4","FUNC5","HSHFUN",
  198. "HSHFUN3","FLIST2","SUB","FILETEST","LOCAL","DELETE","RELOP","EQOP","MULOP","ADDOP",
  199. "PACKAGE","AMPER","FORMLIST","REG","ARYLEN","ARY","HSH","STAR","SUBST","PATTERN",
  200. "RSTRING","TRANS","LISTOP","','","'='","'?'","':'","DOTDOT","OROR","ANDAND",
  201. "'|'","'^'","'&'","UNIOP","LS","RS","MATCH","NMATCH","'!'","'~'",
  202. "UMINUS","POW","INC","DEC","'('","'}'","';'","'-'","'+'","'['",
  203. "']'","prog"
  204. };
  205. #endif
  206.  
  207. static const short yyr1[] = {     0,
  208.     93,    92,    94,    94,    95,    95,    95,    96,    97,    98,
  209.     98,    99,    99,    99,    99,    99,   100,   100,   100,   100,
  210.    100,   100,   101,   101,   101,   101,   102,   102,   102,   102,
  211.    102,   102,   102,   102,   103,   103,   104,   104,   105,   105,
  212.    106,   106,   106,   107,   107,   108,   109,   110,   111,   111,
  213.    112,   113,   113,   113,   113,   113,   113,   113,   113,   113,
  214.    113,   113,   113,   113,   113,   113,   113,   113,   113,   113,
  215.    113,   113,   113,   113,   113,   113,   113,   114,   114,   114,
  216.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  217.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  218.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  219.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  220.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  221.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  222.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  223.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  224.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  225.    115,   115,   115,   115,   115,   115,   116,   116,   117,   117,
  226.    118,   118,   119,   119,   120
  227. };
  228.  
  229. static const short yyr2[] = {     0,
  230.      0,     2,     3,     2,     0,     2,     5,     4,     0,     0,
  231.      2,     1,     2,     1,     2,     3,     1,     1,     3,     3,
  232.      3,     3,     5,     5,     3,     3,     6,     6,     4,     4,
  233.      7,     6,    10,     2,     0,     1,     0,     1,     0,     2,
  234.      1,     1,     1,     4,     3,     3,     3,     2,     3,     1,
  235.      2,     3,     4,     4,     4,     4,     4,     4,     4,     4,
  236.      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
  237.      3,     3,     3,     5,     3,     3,     1,     2,     2,     2,
  238.      2,     2,     2,     2,     2,     2,     2,     1,     4,     3,
  239.      2,     2,     2,     1,     1,     4,     1,     1,     4,     6,
  240.      5,     4,     4,     5,     1,     1,     1,     1,     1,     5,
  241.      5,     4,     4,     2,     5,     5,     4,     4,     2,     1,
  242.      2,     1,     2,     2,     1,     2,     4,     7,     2,     4,
  243.      5,     4,     2,     2,     3,     1,     5,     6,     6,     7,
  244.      9,     6,     2,     4,     2,     4,     1,     1,     6,     5,
  245.      4,     5,     4,     2,     1,     1,     3,     3,     4,     5,
  246.      5,     6,     6,     7,     8,     4,     2,     6,     1,     1,
  247.      1,     2,     2,     3,     3,     3,     1,     1,     1,     1,
  248.      1,     1,     2,     1,     1
  249. };
  250.  
  251. static const short yydefact[] = {     1,
  252.     10,    39,     0,     0,     0,     0,    11,    14,     0,    12,
  253.     41,    42,    43,    40,     0,     0,     0,     0,    17,     9,
  254.    185,     0,   125,   120,     0,   147,     0,     0,   155,     0,
  255.      0,     0,     0,   148,     0,     0,   136,     0,     0,     0,
  256.      0,     0,   156,     0,     0,     0,     0,     0,     0,     0,
  257.      0,     0,    88,     0,     0,     0,    94,   105,    98,    97,
  258.     95,   108,   107,   106,   109,   171,   122,     0,     0,     0,
  259.      0,     0,    15,     0,     0,    34,     5,     0,    13,    18,
  260.     50,    77,   170,   169,     0,    45,    46,    47,    10,   129,
  261.      0,   126,     0,   121,   185,    94,    93,    92,   179,   180,
  262.      0,   145,     0,     0,   143,   154,    37,     0,     0,     0,
  263.      0,     0,     0,     0,     0,     0,     0,     0,   133,   134,
  264.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  265.      0,     0,     0,   181,   182,     0,   167,     0,     0,    86,
  266.     87,     0,     0,   114,   119,     0,     0,     0,     0,   173,
  267.     94,     0,   172,   123,   124,    80,    81,    84,    85,    91,
  268.      0,    78,    79,     0,     0,     0,     4,    16,     0,     0,
  269.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  270.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  271.     82,    83,    44,    39,   185,   178,     0,   185,   178,     0,
  272.      0,     0,     0,     0,     0,     0,    38,    29,     0,    30,
  273.      0,    25,     0,    26,     0,     0,     0,    36,     0,    18,
  274.    135,     0,     0,     0,     0,     0,     0,   157,   158,     0,
  275.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  276.      0,     0,     0,     0,     0,     0,   174,   175,   176,     0,
  277.    184,     0,    90,     6,     0,     3,    21,    22,    19,    20,
  278.     49,    66,    67,     0,    62,     0,    63,    52,     0,    71,
  279.     73,    72,     0,    70,     0,    69,     0,    68,     0,    64,
  280.      0,    65,    75,    76,     0,    61,     8,   130,     0,     0,
  281.      0,     0,   127,   112,     0,   117,     0,   146,     0,   144,
  282.      0,     0,     0,     0,   151,     0,   153,     0,    37,     0,
  283.    132,     0,     0,     0,     0,     0,   159,     0,     0,     0,
  284.      0,     0,   166,     0,     0,    89,     0,   113,     0,   118,
  285.      0,    99,    96,   103,   102,     0,   183,     0,     0,    54,
  286.     55,     0,    60,    59,    58,    56,    57,    53,    48,   131,
  287.     51,     0,   110,   115,     0,    27,    28,    23,    24,   150,
  288.      0,     0,     0,    32,   137,     0,     0,     0,     0,   160,
  289.    161,     0,     0,     0,     0,     0,   152,   104,   111,   116,
  290.    101,     0,     0,    74,     0,   142,   149,    31,     0,   138,
  291.      0,   139,     0,   162,   163,     0,     0,   168,   100,     7,
  292.    128,     0,   140,     0,   164,     0,     0,     0,   165,    33,
  293.    141,     0,     0,     0
  294. };
  295.  
  296. static const short yydefgoto[] = {   412,
  297.      1,    76,   167,    77,    89,     2,     7,   218,    79,     8,
  298.    219,   206,     9,    10,    11,    12,    13,   290,    80,   292,
  299.     81,    82,    83,   197,   102,   137,   253,    84
  300. };
  301.  
  302. static const short yypact[] = {-32768,
  303. -32768,   131,   -19,    13,    64,    66,-32768,-32768,   434,-32768,
  304. -32768,-32768,-32768,-32768,    -5,    72,   112,    42,-32768,-32768,
  305. -32768,    37,    41,   130,   783,    33,    85,    56,  2410,     8,
  306.      9,    20,    26,    96,   104,   -29,    36,   108,   133,   137,
  307.    139,   140,   152,   157,   160,   161,   162,   164,   168,    38,
  308.    172,   174,  2495,   175,    91,   122,     7,-32768,    14,-32768,
  309. -32768,-32768,-32768,-32768,-32768,   870,   957,  2410,  2410,  2410,
  310.   2410,  1043,-32768,  2410,  2410,-32768,   117,   120,-32768,   166,
  311.   2801,   -32,-32768,-32768,   149,-32768,-32768,-32768,-32768,-32768,
  312.   2580,-32768,  2665,-32768,   176,     6,-32768,   304,-32768,-32768,
  313.     61,-32768,    61,    61,-32768,-32768,  2410,   112,  2410,   112,
  314.   2410,   112,  2410,   112,  2410,  2410,   180,   519,-32768,-32768,
  315.   1129,  2665,  2665,  2665,  2665,  2665,   219,  1215,  2410,  2410,
  316.   2410,  2410,  2410,-32768,-32768,    19,-32768,    19,  2410,-32768,
  317.    304,  2410,   235,   181,   184,  2410,  2410,  2410,  2410,  2410,
  318.    695,  2410,   187,-32768,   304,   -32,   -32,     0,     0,   182,
  319.     15,   -32,   -32,   112,   185,   112,-32768,-32768,  2410,  2410,
  320.   2410,  2410,  2410,  2410,  2410,  1730,  1815,  2410,  2410,  2410,
  321.   2410,  2410,  1900,  1985,  2070,  2155,  2240,  2410,  2410,  2325,
  322. -32768,-32768,-32768,    34,    16,  2801,   207,    17,  2693,   269,
  323.   1301,  1387,   270,   211,   273,   276,   187,-32768,    18,-32768,
  324.     22,-32768,    23,-32768,   348,    15,  2410,-32768,   194,    55,
  325. -32768,   278,   207,   227,   227,   230,   237,-32768,-32768,    24,
  326.   2729,  2693,  2693,  2693,  2693,   295,   227,  2729,    15,  2410,
  327.   1473,  1559,    82,   -33,   113,   -24,   187,   187,   187,  2410,
  328. -32768,  1645,   216,-32768,  2410,-32768,   187,   187,   187,   187,
  329.   2801,  2813,  2741,  2410,   158,  2410,   123,  2801,  2765,  2852,
  330.   2888,   266,  2410,   326,  2410,   326,  2410,  2777,  2410,   138,
  331.   2410,   138,   223,   223,  2410,   223,-32768,-32768,  2410,   303,
  332.   2410,   227,-32768,-32768,    15,-32768,    15,-32768,  2410,-32768,
  333.    112,   112,   112,   112,-32768,    49,-32768,    15,  2410,   112,
  334. -32768,   305,   207,   227,  2665,  2665,-32768,   306,    50,   207,
  335.    227,   227,-32768,   207,   307,-32768,   153,-32768,    15,-32768,
  336.     15,-32768,-32768,-32768,-32768,   115,-32768,  2410,    60,  2801,
  337.   2801,  2410,  2801,  2801,  2801,  2801,  2801,  2801,   187,-32768,
  338.   2801,   227,-32768,-32768,    15,-32768,-32768,-32768,-32768,-32768,
  339.    314,   112,   221,-32768,-32768,   316,   207,   317,   227,-32768,
  340. -32768,   318,   320,   207,   227,   322,-32768,-32768,-32768,-32768,
  341. -32768,   128,   112,  2837,   323,-32768,-32768,-32768,   608,-32768,
  342.    324,-32768,   227,-32768,-32768,   325,   207,-32768,-32768,-32768,
  343. -32768,   327,-32768,   207,-32768,   328,   112,   329,-32768,-32768,
  344. -32768,   330,   334,-32768
  345. };
  346.  
  347. static const short yypgoto[] = {-32768,
  348. -32768,  -107,-32768,   -17,-32768,   246,-32768,   331,-32768,-32768,
  349.    -44,    40,-32768,-32768,-32768,-32768,-32768,  -176,    62,    63,
  350.    -23,   215,-32768,   -89,    29,   -73,    28,-32768
  351. };
  352.  
  353.  
  354. #define    YYLAST        2970
  355.  
  356.  
  357. static const short yytable[] = {    87,
  358.    208,    98,   210,   200,   212,   106,   214,    97,   146,   146,
  359.     20,    20,   108,   110,   112,   114,   148,    15,   251,   288,
  360.   -177,   302,    20,   134,   117,   303,   304,   317,    20,   141,
  361.    173,   222,   223,   224,   225,   226,   227,    99,     3,   173,
  362.    119,    90,   134,   155,     4,    92,   312,    14,   152,   154,
  363.    191,   192,   360,   371,   318,   118,   105,   333,   251,    85,
  364.     99,   325,   236,   383,   237,    99,   335,   196,    17,   199,
  365.     18,   169,   170,   171,   172,   135,     5,    16,   252,  -177,
  366.   -177,   173,-32768,-32768,     6,   173,   173,   173,   100,   120,
  367.    202,   215,   107,   109,   135,   147,   147,   196,   196,   196,
  368.    196,   196,   196,   149,   111,   231,   232,   233,   234,   235,
  369.    113,   100,   291,   289,    20,   238,   100,   101,   252,   287,
  370.    121,    91,   136,   173,    86,    93,   144,   153,    88,   203,
  371.     -2,   204,   205,   161,    94,     3,   366,   164,   165,   166,
  372.    104,     4,   372,   373,   143,   173,   254,   376,   256,   261,
  373.    262,   263,   265,   267,   268,   269,   270,   271,   272,   274,
  374.    276,   278,   280,   282,   283,   284,   286,   332,   207,   103,
  375.    209,   176,   211,     5,   213,   145,   173,   216,   173,   220,
  376.    115,     6,   169,   170,   171,   172,   176,   177,   116,   230,
  377.    391,   173,   122,   356,   357,   358,   359,   396,   334,   188,
  378.    189,   193,   364,   239,   190,   381,   168,   243,   244,   245,
  379.    246,   247,   248,   249,   188,   189,   173,   123,   399,   190,
  380.    406,   124,   228,   125,   126,   368,   369,   408,   261,   173,
  381.    257,   258,   259,   260,   188,   189,   127,   240,   378,   190,
  382.    340,   128,   341,   307,   129,   130,   131,   310,   132,   343,
  383.    173,   344,   133,   345,   388,   346,   138,   347,   139,   142,
  384.    201,   348,   295,   297,   217,   241,   326,   351,   242,   255,
  385.    289,   250,   293,   298,   299,   400,   300,   306,   308,   301,
  386.    309,   311,   156,   157,   158,   159,   313,   314,   162,   163,
  387.    291,   196,   196,   315,   319,   320,   321,   322,   323,   324,
  388.    316,   327,   329,   331,   190,   338,   350,   389,   365,   370,
  389.    377,   336,   174,   175,   176,   177,   339,   387,   384,   390,
  390.    392,   394,   353,   395,   354,   398,   401,   403,   405,   413,
  391.    407,   409,   411,   414,   194,   362,   183,   184,   185,    78,
  392.    186,   187,   188,   189,   402,     0,     0,   190,   363,     0,
  393.    349,   305,   176,   177,   352,     0,   379,     0,   380,     0,
  394.    355,     0,     0,     0,     0,     0,     0,     0,   361,     0,
  395.    207,     0,   174,   175,   176,   177,   367,     0,   186,   187,
  396.    188,   189,   386,   374,   375,   190,     0,     0,     0,   410,
  397.      0,     0,     0,     0,   174,   175,   176,   177,   185,   382,
  398.    186,   187,   188,   189,     0,     0,     0,   190,     0,     0,
  399.      0,   291,   178,   179,   385,   180,   181,   182,   183,   184,
  400.    185,     0,   186,   187,   188,   189,     0,     0,     0,   190,
  401.      0,   393,     0,     0,    19,     0,    20,   397,    21,     0,
  402.     22,    23,    24,     0,     0,    25,    26,    27,    28,    29,
  403.     30,    31,    32,    33,     0,   404,     0,    34,    35,    36,
  404.     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
  405.     47,    48,    49,    50,    51,    52,     0,    53,    54,    55,
  406.      0,     0,     0,     0,     0,    56,     0,    57,    58,    59,
  407.     60,    61,    62,    63,    64,    65,    66,     0,     0,     0,
  408.      0,     0,     0,     0,     0,     0,     0,    67,     0,     0,
  409.      0,     0,    68,    69,     0,     0,    70,    71,    72,    19,
  410.     73,    74,    75,    21,     0,    22,    23,    24,     0,     0,
  411.     25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
  412.      0,     0,    34,    35,     0,    37,    38,    39,    40,    41,
  413.     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
  414.     52,     0,    53,    54,    55,     0,     0,     0,     0,     0,
  415.     56,     0,    57,    58,    59,    60,    61,    62,    63,    64,
  416.     65,    66,     0,     0,     0,     0,     0,     0,     0,     0,
  417.      0,     0,    67,     0,     0,     0,     0,    68,    69,     0,
  418.      0,    70,    71,    72,     0,   -35,    74,    75,    19,     0,
  419.      0,   -35,    21,     0,    22,    23,    24,     0,     0,    25,
  420.     26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
  421.      0,    34,    35,     0,    37,    38,    39,    40,    41,    42,
  422.     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
  423.      0,    53,    54,    55,     0,     0,     0,     0,     0,    56,
  424.      0,    57,    58,    59,    60,    61,    62,    63,    64,    65,
  425.     66,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  426.      0,    67,     0,     0,     0,     0,    68,    69,     0,     0,
  427.     70,    71,    72,     0,     0,    74,    75,   146,     0,    21,
  428.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  429.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  430.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  431.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  432.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  433.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  434.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  435.      0,     0,     0,    68,    69,     0,     0,     0,     0,    72,
  436.      0,     0,    74,    75,   147,    20,     0,    95,     0,    22,
  437.     23,    24,     0,     0,    25,    26,    27,    28,    29,     0,
  438.      0,     0,     0,     0,     0,     0,    34,    35,     0,    37,
  439.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  440.     48,    49,    50,    51,    52,     0,    53,    54,    55,     0,
  441.      0,     0,     0,     0,    56,     0,    96,    58,    59,    60,
  442.     61,    62,    63,    64,    65,    66,     0,     0,     0,     0,
  443.      0,     0,     0,     0,     0,     0,    67,     0,     0,     0,
  444.      0,    68,    69,     0,     0,    70,    71,    72,     0,     0,
  445.     74,    75,    20,     0,   150,     0,    22,    23,    24,     0,
  446.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  447.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  448.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  449.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  450.      0,    56,     0,   151,    58,    59,    60,    61,    62,    63,
  451.     64,    65,    66,     0,     0,     0,     0,     0,     0,     0,
  452.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  453.      0,     0,    70,    71,    72,     0,     0,    74,    75,    20,
  454.      0,    21,     0,    22,    23,    24,     0,     0,    25,    26,
  455.     27,    28,    29,     0,     0,     0,     0,     0,     0,     0,
  456.     34,    35,     0,    37,    38,    39,    40,    41,    42,    43,
  457.     44,    45,    46,    47,    48,    49,    50,    51,    52,     0,
  458.     53,    54,    55,     0,     0,     0,     0,     0,    56,     0,
  459.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  460.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  461.     67,     0,     0,     0,     0,    68,    69,     0,     0,    70,
  462.     71,    72,     0,     0,    74,    75,   160,    21,     0,    22,
  463.     23,    24,     0,     0,    25,    26,    27,    28,    29,     0,
  464.      0,     0,     0,     0,     0,     0,    34,    35,     0,    37,
  465.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  466.     48,    49,    50,    51,    52,     0,    53,    54,    55,     0,
  467.      0,     0,     0,     0,    56,     0,    57,    58,    59,    60,
  468.     61,    62,    63,    64,    65,    66,     0,     0,     0,     0,
  469.      0,     0,     0,     0,     0,     0,    67,     0,     0,     0,
  470.      0,    68,    69,     0,     0,    70,    71,    72,     0,     0,
  471.     74,    75,   221,   198,     0,    22,    23,    24,     0,     0,
  472.     25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
  473.      0,     0,    34,    35,     0,    37,    38,    39,    40,    41,
  474.     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
  475.     52,     0,    53,    54,    55,     0,     0,     0,     0,     0,
  476.     56,     0,    57,    58,    59,    60,    61,    62,    63,    64,
  477.     65,    66,     0,     0,     0,     0,     0,     0,     0,     0,
  478.      0,     0,    67,     0,     0,     0,     0,    68,    69,     0,
  479.      0,    70,    71,    72,     0,     0,    74,    75,   229,    21,
  480.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  481.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  482.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  483.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  484.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  485.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  486.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  487.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  488.      0,     0,    74,    75,   294,    21,     0,    22,    23,    24,
  489.      0,     0,    25,    26,    27,    28,    29,     0,     0,     0,
  490.      0,     0,     0,     0,    34,    35,     0,    37,    38,    39,
  491.     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
  492.     50,    51,    52,     0,    53,    54,    55,     0,     0,     0,
  493.      0,     0,    56,     0,    57,    58,    59,    60,    61,    62,
  494.     63,    64,    65,    66,     0,     0,     0,     0,     0,     0,
  495.      0,     0,     0,     0,    67,     0,     0,     0,     0,    68,
  496.     69,     0,     0,    70,    71,    72,     0,     0,    74,    75,
  497.    296,    21,     0,    22,    23,    24,     0,     0,    25,    26,
  498.     27,    28,    29,     0,     0,     0,     0,     0,     0,     0,
  499.     34,    35,     0,    37,    38,    39,    40,    41,    42,    43,
  500.     44,    45,    46,    47,    48,    49,    50,    51,    52,     0,
  501.     53,    54,    55,     0,     0,     0,     0,     0,    56,     0,
  502.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  503.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  504.     67,     0,     0,     0,     0,    68,    69,     0,     0,    70,
  505.     71,    72,     0,     0,    74,    75,   328,    21,     0,    22,
  506.     23,    24,     0,     0,    25,    26,    27,    28,    29,     0,
  507.      0,     0,     0,     0,     0,     0,    34,    35,     0,    37,
  508.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  509.     48,    49,    50,    51,    52,     0,    53,    54,    55,     0,
  510.      0,     0,     0,     0,    56,     0,    57,    58,    59,    60,
  511.     61,    62,    63,    64,    65,    66,     0,     0,     0,     0,
  512.      0,     0,     0,     0,     0,     0,    67,     0,     0,     0,
  513.      0,    68,    69,     0,     0,    70,    71,    72,     0,     0,
  514.     74,    75,   330,    21,     0,    22,    23,    24,     0,     0,
  515.     25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
  516.      0,     0,    34,    35,     0,    37,    38,    39,    40,    41,
  517.     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
  518.     52,     0,    53,    54,    55,     0,     0,     0,     0,     0,
  519.     56,     0,    57,    58,    59,    60,    61,    62,    63,    64,
  520.     65,    66,     0,     0,     0,     0,     0,     0,     0,     0,
  521.      0,     0,    67,     0,     0,     0,     0,    68,    69,     0,
  522.      0,    70,    71,    72,     0,     0,    74,    75,   337,    21,
  523.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  524.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  525.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  526.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  527.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  528.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  529.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  530.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  531.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  532.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  533.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  534.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  535.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  536.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  537.     64,    65,    66,     0,   264,     0,     0,     0,     0,     0,
  538.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  539.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  540.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  541.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  542.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  543.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  544.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  545.     59,    60,    61,    62,    63,    64,    65,    66,     0,   266,
  546.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  547.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  548.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  549.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  550.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  551.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  552.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  553.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  554.     64,    65,    66,     0,   273,     0,     0,     0,     0,     0,
  555.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  556.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  557.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  558.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  559.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  560.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  561.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  562.     59,    60,    61,    62,    63,    64,    65,    66,     0,   275,
  563.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  564.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  565.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  566.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  567.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  568.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  569.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  570.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  571.     64,    65,    66,     0,   277,     0,     0,     0,     0,     0,
  572.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  573.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  574.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  575.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  576.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  577.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  578.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  579.     59,    60,    61,    62,    63,    64,    65,    66,     0,   279,
  580.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  581.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  582.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  583.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  584.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  585.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  586.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  587.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  588.     64,    65,    66,     0,   281,     0,     0,     0,     0,     0,
  589.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  590.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  591.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  592.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  593.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  594.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  595.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  596.     59,    60,    61,    62,    63,    64,    65,    66,     0,   285,
  597.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  598.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  599.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  600.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  601.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  602.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  603.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  604.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  605.     64,    65,    66,     0,     0,     0,     0,     0,     0,     0,
  606.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  607.      0,     0,    70,    71,    72,     0,     0,    74,    75,   140,
  608.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  609.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  610.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  611.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  612.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  613.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  614.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  615.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  616.      0,     0,    74,    75,   195,     0,    22,    23,    24,     0,
  617.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  618.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  619.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  620.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  621.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  622.     64,    65,    66,     0,     0,     0,     0,     0,     0,     0,
  623.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  624.      0,     0,    70,    71,    72,     0,     0,    74,    75,   198,
  625.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  626.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  627.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  628.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  629.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  630.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  631.      0,     0,     0,     0,     0,     0,     0,     0,    67,   174,
  632.    175,   176,   177,    68,    69,     0,     0,    70,    71,    72,
  633.      0,     0,    74,    75,     0,     0,   291,   178,   179,     0,
  634.    180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
  635.    189,     0,     0,     0,   190,   174,   175,   176,   177,     0,
  636.      0,     0,     0,     0,     0,     0,     0,   174,-32768,   176,
  637.    177,     0,   289,   178,   179,     0,   180,   181,   182,   183,
  638.    184,   185,     0,   186,   187,   188,   189,     0,     0,     0,
  639.    190,   174,   175,   176,   177,   186,   187,   188,   189,     0,
  640.      0,     0,   190,   174,   175,   176,   177,     0,     0,   178,
  641.    179,   342,   180,   181,   182,   183,   184,   185,     0,   186,
  642.    187,   188,   189,     0,     0,     0,   190,   174,   175,   176,
  643.    177,   186,   187,   188,   189,     0,     0,     0,   190,-32768,
  644.      0,   176,   177,     0,     0,   178,   179,     0,   180,   181,
  645.    182,   183,   184,   185,     0,   186,   187,   188,   189,     0,
  646.      0,     0,   190,   174,   175,   176,   177,   186,   187,   188,
  647.    189,     0,     0,     0,   190,     0,     0,     0,   174,   175,
  648.    176,   177,   179,     0,   180,   181,   182,   183,   184,   185,
  649.      0,   186,   187,   188,   189,     0,     0,     0,   190,-32768,
  650.    181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
  651.      0,     0,     0,   190,   174,   175,   176,   177,     0,     0,
  652.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  653.      0,     0,     0,     0,     0,     0,     0,   182,   183,   184,
  654.    185,     0,   186,   187,   188,   189,     0,     0,     0,   190
  655. };
  656.  
  657. static const short yycheck[] = {    17,
  658.    108,    25,   110,    93,   112,    29,   114,    25,     3,     3,
  659.      3,     3,    30,    31,    32,    33,     3,     5,     4,     4,
  660.      4,     4,     3,     5,    54,     4,     4,     4,     3,    53,
  661.     64,   121,   122,   123,   124,   125,   126,     5,     5,    64,
  662.      5,     5,     5,    67,    11,     5,   223,    67,    66,    67,
  663.     83,    84,     4,     4,   231,    85,    28,    91,     4,    65,
  664.      5,   238,   136,     4,   138,     5,    91,    91,     5,    93,
  665.      5,    17,    18,    19,    20,    57,    43,    65,    64,    64,
  666.     64,    64,    83,    84,    51,    64,    64,    64,    56,    54,
  667.     85,   115,    85,    85,    57,    90,    90,   121,   122,   123,
  668.    124,   125,   126,    90,    85,   129,   130,   131,   132,   133,
  669.     85,    56,    64,    64,     3,   139,    56,    85,    64,    86,
  670.     85,    85,    85,    64,    53,    85,     5,    66,    87,   101,
  671.      0,   103,   104,    72,     5,     5,   313,    21,    22,    23,
  672.     85,    11,   319,   320,    54,    64,   164,   324,   166,   173,
  673.    174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
  674.    184,   185,   186,   187,   188,   189,   190,    86,   107,    85,
  675.    109,    49,   111,    43,   113,    54,    64,   116,    64,   118,
  676.     85,    51,    17,    18,    19,    20,    49,    50,    85,   128,
  677.    367,    64,    85,   301,   302,   303,   304,   374,    86,    77,
  678.     78,    53,   310,   142,    82,    91,    87,   146,   147,   148,
  679.    149,   150,   151,   152,    77,    78,    64,    85,    91,    82,
  680.    397,    85,     4,    85,    85,   315,   316,   404,   252,    64,
  681.    169,   170,   171,   172,    77,    78,    85,     3,    86,    82,
  682.    264,    85,   266,   216,    85,    85,    85,   220,    85,   273,
  683.     64,   275,    85,   277,   362,   279,    85,   281,    85,    85,
  684.     85,   285,   201,   202,    85,    85,   239,   291,    85,    85,
  685.     64,    90,     4,     4,    64,   383,     4,   215,   217,     4,
  686.     87,     4,    68,    69,    70,    71,   224,   225,    74,    75,
  687.     64,   315,   316,    64,   232,   233,   234,   235,     4,   237,
  688.     64,   240,   241,   242,    82,    90,     4,    87,     4,     4,
  689.      4,   250,    47,    48,    49,    50,   255,     4,   342,     4,
  690.      4,     4,   295,     4,   297,     4,     4,     4,     4,     0,
  691.      4,     4,     4,     0,    89,   308,    71,    72,    73,     9,
  692.     75,    76,    77,    78,   389,    -1,    -1,    82,   309,    -1,
  693.    289,     4,    49,    50,   292,    -1,   329,    -1,   331,    -1,
  694.    299,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   306,    -1,
  695.    309,    -1,    47,    48,    49,    50,   314,    -1,    75,    76,
  696.     77,    78,   355,   321,   322,    82,    -1,    -1,    -1,   407,
  697.     -1,    -1,    -1,    -1,    47,    48,    49,    50,    73,   338,
  698.     75,    76,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,
  699.     -1,    64,    65,    66,   352,    68,    69,    70,    71,    72,
  700.     73,    -1,    75,    76,    77,    78,    -1,    -1,    -1,    82,
  701.     -1,   369,    -1,    -1,     1,    -1,     3,   375,     5,    -1,
  702.      7,     8,     9,    -1,    -1,    12,    13,    14,    15,    16,
  703.     17,    18,    19,    20,    -1,   393,    -1,    24,    25,    26,
  704.     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
  705.     37,    38,    39,    40,    41,    42,    -1,    44,    45,    46,
  706.     -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,
  707.     57,    58,    59,    60,    61,    62,    63,    -1,    -1,    -1,
  708.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,
  709.     -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,     1,
  710.     87,    88,    89,     5,    -1,     7,     8,     9,    -1,    -1,
  711.     12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,
  712.     -1,    -1,    24,    25,    -1,    27,    28,    29,    30,    31,
  713.     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
  714.     42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  715.     52,    -1,    54,    55,    56,    57,    58,    59,    60,    61,
  716.     62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  717.     -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,
  718.     -1,    83,    84,    85,    -1,    87,    88,    89,     1,    -1,
  719.     -1,     4,     5,    -1,     7,     8,     9,    -1,    -1,    12,
  720.     13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,
  721.     -1,    24,    25,    -1,    27,    28,    29,    30,    31,    32,
  722.     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
  723.     -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,    52,
  724.     -1,    54,    55,    56,    57,    58,    59,    60,    61,    62,
  725.     63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  726.     -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,
  727.     83,    84,    85,    -1,    -1,    88,    89,     3,    -1,     5,
  728.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  729.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  730.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  731.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  732.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  733.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  734.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  735.     -1,    -1,    -1,    79,    80,    -1,    -1,    -1,    -1,    85,
  736.     -1,    -1,    88,    89,    90,     3,    -1,     5,    -1,     7,
  737.      8,     9,    -1,    -1,    12,    13,    14,    15,    16,    -1,
  738.     -1,    -1,    -1,    -1,    -1,    -1,    24,    25,    -1,    27,
  739.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  740.     38,    39,    40,    41,    42,    -1,    44,    45,    46,    -1,
  741.     -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,    57,
  742.     58,    59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
  743.     -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
  744.     -1,    79,    80,    -1,    -1,    83,    84,    85,    -1,    -1,
  745.     88,    89,     3,    -1,     5,    -1,     7,     8,     9,    -1,
  746.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  747.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  748.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  749.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  750.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  751.     61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  752.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  753.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     3,
  754.     -1,     5,    -1,     7,     8,     9,    -1,    -1,    12,    13,
  755.     14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  756.     24,    25,    -1,    27,    28,    29,    30,    31,    32,    33,
  757.     34,    35,    36,    37,    38,    39,    40,    41,    42,    -1,
  758.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    52,    -1,
  759.     54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
  760.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  761.     74,    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
  762.     84,    85,    -1,    -1,    88,    89,     4,     5,    -1,     7,
  763.      8,     9,    -1,    -1,    12,    13,    14,    15,    16,    -1,
  764.     -1,    -1,    -1,    -1,    -1,    -1,    24,    25,    -1,    27,
  765.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  766.     38,    39,    40,    41,    42,    -1,    44,    45,    46,    -1,
  767.     -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,    57,
  768.     58,    59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
  769.     -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
  770.     -1,    79,    80,    -1,    -1,    83,    84,    85,    -1,    -1,
  771.     88,    89,     4,     5,    -1,     7,     8,     9,    -1,    -1,
  772.     12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,
  773.     -1,    -1,    24,    25,    -1,    27,    28,    29,    30,    31,
  774.     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
  775.     42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  776.     52,    -1,    54,    55,    56,    57,    58,    59,    60,    61,
  777.     62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  778.     -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,
  779.     -1,    83,    84,    85,    -1,    -1,    88,    89,     4,     5,
  780.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  781.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  782.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  783.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  784.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  785.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  786.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  787.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  788.     -1,    -1,    88,    89,     4,     5,    -1,     7,     8,     9,
  789.     -1,    -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,
  790.     -1,    -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,
  791.     30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
  792.     40,    41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,
  793.     -1,    -1,    52,    -1,    54,    55,    56,    57,    58,    59,
  794.     60,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,
  795.     -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,
  796.     80,    -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,
  797.      4,     5,    -1,     7,     8,     9,    -1,    -1,    12,    13,
  798.     14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  799.     24,    25,    -1,    27,    28,    29,    30,    31,    32,    33,
  800.     34,    35,    36,    37,    38,    39,    40,    41,    42,    -1,
  801.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    52,    -1,
  802.     54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
  803.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  804.     74,    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
  805.     84,    85,    -1,    -1,    88,    89,     4,     5,    -1,     7,
  806.      8,     9,    -1,    -1,    12,    13,    14,    15,    16,    -1,
  807.     -1,    -1,    -1,    -1,    -1,    -1,    24,    25,    -1,    27,
  808.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  809.     38,    39,    40,    41,    42,    -1,    44,    45,    46,    -1,
  810.     -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,    57,
  811.     58,    59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
  812.     -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
  813.     -1,    79,    80,    -1,    -1,    83,    84,    85,    -1,    -1,
  814.     88,    89,     4,     5,    -1,     7,     8,     9,    -1,    -1,
  815.     12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,
  816.     -1,    -1,    24,    25,    -1,    27,    28,    29,    30,    31,
  817.     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
  818.     42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  819.     52,    -1,    54,    55,    56,    57,    58,    59,    60,    61,
  820.     62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  821.     -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,
  822.     -1,    83,    84,    85,    -1,    -1,    88,    89,     4,     5,
  823.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  824.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  825.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  826.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  827.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  828.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  829.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  830.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  831.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  832.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  833.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  834.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  835.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  836.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  837.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  838.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  839.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  840.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  841.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  842.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  843.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  844.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  845.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  846.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  847.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  848.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  849.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  850.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  851.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  852.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  853.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  854.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  855.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  856.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  857.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  858.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  859.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  860.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  861.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  862.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  863.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  864.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  865.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  866.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  867.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  868.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  869.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  870.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  871.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  872.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  873.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  874.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  875.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  876.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  877.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  878.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  879.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  880.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  881.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  882.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  883.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  884.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  885.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  886.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  887.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  888.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  889.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  890.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  891.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  892.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  893.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  894.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  895.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  896.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  897.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  898.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  899.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  900.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  901.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  902.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  903.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  904.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  905.     61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  906.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  907.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  908.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  909.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  910.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  911.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  912.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  913.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  914.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  915.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  916.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  917.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  918.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  919.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  920.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  921.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  922.     61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  923.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  924.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  925.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  926.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  927.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  928.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  929.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  930.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  931.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    47,
  932.     48,    49,    50,    79,    80,    -1,    -1,    83,    84,    85,
  933.     -1,    -1,    88,    89,    -1,    -1,    64,    65,    66,    -1,
  934.     68,    69,    70,    71,    72,    73,    -1,    75,    76,    77,
  935.     78,    -1,    -1,    -1,    82,    47,    48,    49,    50,    -1,
  936.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
  937.     50,    -1,    64,    65,    66,    -1,    68,    69,    70,    71,
  938.     72,    73,    -1,    75,    76,    77,    78,    -1,    -1,    -1,
  939.     82,    47,    48,    49,    50,    75,    76,    77,    78,    -1,
  940.     -1,    -1,    82,    47,    48,    49,    50,    -1,    -1,    65,
  941.     66,    67,    68,    69,    70,    71,    72,    73,    -1,    75,
  942.     76,    77,    78,    -1,    -1,    -1,    82,    47,    48,    49,
  943.     50,    75,    76,    77,    78,    -1,    -1,    -1,    82,    47,
  944.     -1,    49,    50,    -1,    -1,    65,    66,    -1,    68,    69,
  945.     70,    71,    72,    73,    -1,    75,    76,    77,    78,    -1,
  946.     -1,    -1,    82,    47,    48,    49,    50,    75,    76,    77,
  947.     78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    47,    48,
  948.     49,    50,    66,    -1,    68,    69,    70,    71,    72,    73,
  949.     -1,    75,    76,    77,    78,    -1,    -1,    -1,    82,    68,
  950.     69,    70,    71,    72,    73,    -1,    75,    76,    77,    78,
  951.     -1,    -1,    -1,    82,    47,    48,    49,    50,    -1,    -1,
  952.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  953.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
  954.     73,    -1,    75,    76,    77,    78,    -1,    -1,    -1,    82
  955. };
  956. #define YYPURE 1
  957.  
  958. /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  959. #line 3 "bison.simple"
  960.  
  961. /* Skeleton output parser for bison,
  962.    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  963.  
  964.    This program is free software; you can redistribute it and/or modify
  965.    it under the terms of the GNU General Public License as published by
  966.    the Free Software Foundation; either version 1, or (at your option)
  967.    any later version.
  968.  
  969.    This program is distributed in the hope that it will be useful,
  970.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  971.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  972.    GNU General Public License for more details.
  973.  
  974.    You should have received a copy of the GNU General Public License
  975.    along with this program; if not, write to the Free Software
  976.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  977.  
  978.  
  979. #ifdef __GNUC__
  980. #define alloca __builtin_alloca
  981. #else /* Not GNU C.  */
  982. #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
  983. #include <alloca.h>
  984. #endif /* Sparc.  */
  985. #endif /* Not GNU C.  */
  986.  
  987. /* This is the parser code that is written into each bison parser
  988.   when the %semantic_parser declaration is not specified in the grammar.
  989.   It was written by Richard Stallman by simplifying the hairy parser
  990.   used when %semantic_parser is specified.  */
  991.  
  992. /* Note: there must be only one dollar sign in this file.
  993.    It is replaced by the list of actions, each action
  994.    as one case of the switch.  */
  995.  
  996. #define yyerrok        (yyerrstatus = 0)
  997. #define yyclearin    (yychar = YYEMPTY)
  998. #define YYEMPTY        -2
  999. #define YYEOF        0
  1000. #define YYACCEPT    return(0)
  1001. #define YYABORT     return(1)
  1002. #define YYERROR        goto yyerrlab1
  1003. /* Like YYERROR except do call yyerror.
  1004.    This remains here temporarily to ease the
  1005.    transition to the new meaning of YYERROR, for GCC.
  1006.    Once GCC version 2 has supplanted version 1, this can go.  */
  1007. #define YYFAIL        goto yyerrlab
  1008. #define YYRECOVERING()  (!!yyerrstatus)
  1009. #define YYBACKUP(token, value) \
  1010. do                                \
  1011.   if (yychar == YYEMPTY && yylen == 1)                \
  1012.     { yychar = (token), yylval = (value);            \
  1013.       yychar1 = YYTRANSLATE (yychar);                \
  1014.       YYPOPSTACK;                        \
  1015.       goto yybackup;                        \
  1016.     }                                \
  1017.   else                                \
  1018.     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  1019. while (0)
  1020.  
  1021. #define YYTERROR    1
  1022. #define YYERRCODE    256
  1023.  
  1024. #ifndef YYIMPURE
  1025. #define YYLEX        yylex()
  1026. #endif
  1027.  
  1028. #ifndef YYPURE
  1029. #define YYLEX        yylex(&yylval, &yylloc)
  1030. #endif
  1031.  
  1032. /* If nonreentrant, generate the variables here */
  1033.  
  1034. #ifndef YYIMPURE
  1035.  
  1036. int    yychar;            /*  the lookahead symbol        */
  1037. YYSTYPE    yylval;            /*  the semantic value of the        */
  1038.                 /*  lookahead symbol            */
  1039.  
  1040. #ifdef YYLSP_NEEDED
  1041. YYLTYPE yylloc;            /*  location data for the lookahead    */
  1042.                 /*  symbol                */
  1043. #endif
  1044.  
  1045. int yynerrs;            /*  number of parse errors so far       */
  1046. #endif  /* YYIMPURE */
  1047.  
  1048. #if YYDEBUG != 0
  1049. int yydebug;            /*  nonzero means print parse trace    */
  1050. /* Since this is uninitialized, it does not stop multiple parsers
  1051.    from coexisting.  */
  1052. #endif
  1053.  
  1054. /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  1055.  
  1056. #ifndef    YYINITDEPTH
  1057. #define YYINITDEPTH 200
  1058. #endif
  1059.  
  1060. /*  YYMAXDEPTH is the maximum size the stacks can grow to
  1061.     (effective only if the built-in stack extension method is used).  */
  1062.  
  1063. #if YYMAXDEPTH == 0
  1064. #undef YYMAXDEPTH
  1065. #endif
  1066.  
  1067. #ifndef YYMAXDEPTH
  1068. #define YYMAXDEPTH 10000
  1069. #endif
  1070.  
  1071. /* This is the most reliable way to avoid incompatibilities
  1072.    in available built-in functions on various systems.  */
  1073. static void
  1074. __yy_bcopy (from, to, count)
  1075.      char *from;
  1076.      char *to;
  1077.      int count;
  1078. {
  1079.   register char *f = from;
  1080.   register char *t = to;
  1081.   register int i = count;
  1082.  
  1083.   while (i-- > 0)
  1084.     *t++ = *f++;
  1085. }
  1086.  
  1087. #line 131 "bison.simple"
  1088. int
  1089. yyparse()
  1090. {
  1091.   register int yystate;
  1092.   register int yyn;
  1093.   register short *yyssp;
  1094.   register YYSTYPE *yyvsp;
  1095.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  1096.   int yychar1;        /*  lookahead token as an internal (translated) token number */
  1097.  
  1098.   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  1099.   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  1100.  
  1101.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  1102.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  1103.  
  1104. #ifdef YYLSP_NEEDED
  1105.   YYLTYPE *yyls = yylsa;
  1106.   YYLTYPE *yylsp;
  1107.   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  1108.  
  1109. #define YYPOPSTACK   (yyvsp--, yysp--, yylsp--)
  1110. #else
  1111. #define YYPOPSTACK   (yyvsp--, yysp--)
  1112. #endif
  1113.  
  1114.   int yystacksize = YYINITDEPTH;
  1115.  
  1116. #ifndef YYPURE
  1117.   int yychar;
  1118.   YYSTYPE yylval;
  1119.   int yynerrs;
  1120. #ifdef YYLSP_NEEDED
  1121.   YYLTYPE yylloc;
  1122. #endif
  1123. #endif
  1124.  
  1125.   YYSTYPE yyval;        /*  the variable used to return        */
  1126.                 /*  semantic values from the action    */
  1127.                 /*  routines                */
  1128.  
  1129.   int yylen;
  1130.  
  1131. #if YYDEBUG != 0
  1132.   if (yydebug)
  1133.     fprintf(stderr, "Starting parse\n");
  1134. #endif
  1135.  
  1136.   yystate = 0;
  1137.   yyerrstatus = 0;
  1138.   yynerrs = 0;
  1139.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  1140.  
  1141.   /* Initialize stack pointers.
  1142.      Waste one element of value and location stack
  1143.      so that they stay on the same level as the state stack.  */
  1144.  
  1145.   yyssp = yyss - 1;
  1146.   yyvsp = yyvs;
  1147. #ifdef YYLSP_NEEDED
  1148.   yylsp = yyls;
  1149. #endif
  1150.  
  1151. /* Push a new state, which is found in  yystate  .  */
  1152. /* In all cases, when you get here, the value and location stacks
  1153.    have just been pushed. so pushing a state here evens the stacks.  */
  1154. yynewstate:
  1155.  
  1156.   *++yyssp = yystate;
  1157.  
  1158.   if (yyssp >= yyss + yystacksize - 1)
  1159.     {
  1160.       /* Give user a chance to reallocate the stack */
  1161.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  1162.       YYSTYPE *yyvs1 = yyvs;
  1163.       short *yyss1 = yyss;
  1164. #ifdef YYLSP_NEEDED
  1165.       YYLTYPE *yyls1 = yyls;
  1166. #endif
  1167.  
  1168.       /* Get the current used size of the three stacks, in elements.  */
  1169.       int size = yyssp - yyss + 1;
  1170.  
  1171. #ifdef yyoverflow
  1172.       /* Each stack pointer address is followed by the size of
  1173.      the data in use in that stack, in bytes.  */
  1174.       yyoverflow("parser stack overflow",
  1175.          &yyss1, size * sizeof (*yyssp),
  1176.          &yyvs1, size * sizeof (*yyvsp),
  1177. #ifdef YYLSP_NEEDED
  1178.          &yyls1, size * sizeof (*yylsp),
  1179. #endif
  1180.          &yystacksize);
  1181.  
  1182.       yyss = yyss1; yyvs = yyvs1;
  1183. #ifdef YYLSP_NEEDED
  1184.       yyls = yyls1;
  1185. #endif
  1186. #else /* no yyoverflow */
  1187.       /* Extend the stack our own way.  */
  1188.       if (yystacksize >= YYMAXDEPTH)
  1189.     {
  1190.       yyerror("parser stack overflow");
  1191.       return 2;
  1192.     }
  1193.       yystacksize *= 2;
  1194.       if (yystacksize > YYMAXDEPTH)
  1195.     yystacksize = YYMAXDEPTH;
  1196.       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  1197.       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1198.       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  1199.       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1200. #ifdef YYLSP_NEEDED
  1201.       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  1202.       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1203. #endif
  1204. #endif /* no yyoverflow */
  1205.  
  1206.       yyssp = yyss + size - 1;
  1207.       yyvsp = yyvs + size - 1;
  1208. #ifdef YYLSP_NEEDED
  1209.       yylsp = yyls + size - 1;
  1210. #endif
  1211.  
  1212. #if YYDEBUG != 0
  1213.       if (yydebug)
  1214.     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  1215. #endif
  1216.  
  1217.       if (yyssp >= yyss + yystacksize - 1)
  1218.     YYABORT;
  1219.     }
  1220.  
  1221. #if YYDEBUG != 0
  1222.   if (yydebug)
  1223.     fprintf(stderr, "Entering state %d\n", yystate);
  1224. #endif
  1225.  
  1226.  yybackup:
  1227.  
  1228. /* Do appropriate processing given the current state.  */
  1229. /* Read a lookahead token if we need one and don't already have one.  */
  1230. /* yyresume: */
  1231.  
  1232.   /* First try to decide what to do without reference to lookahead token.  */
  1233.  
  1234.   yyn = yypact[yystate];
  1235.   if (yyn == YYFLAG)
  1236.     goto yydefault;
  1237.  
  1238.   /* Not known => get a lookahead token if don't already have one.  */
  1239.  
  1240.   /* yychar is either YYEMPTY or YYEOF
  1241.      or a valid token in external form.  */
  1242.  
  1243.   if (yychar == YYEMPTY)
  1244.     {
  1245. #if YYDEBUG != 0
  1246.       if (yydebug)
  1247.     fprintf(stderr, "Reading a token: ");
  1248. #endif
  1249.       yychar = YYLEX;
  1250.     }
  1251.  
  1252.   /* Convert token to internal form (in yychar1) for indexing tables with */
  1253.  
  1254.   if (yychar <= 0)        /* This means end of input. */
  1255.     {
  1256.       yychar1 = 0;
  1257.       yychar = YYEOF;        /* Don't call YYLEX any more */
  1258.  
  1259. #if YYDEBUG != 0
  1260.       if (yydebug)
  1261.     fprintf(stderr, "Now at end of input.\n");
  1262. #endif
  1263.     }
  1264.   else
  1265.     {
  1266.       yychar1 = YYTRANSLATE(yychar);
  1267.  
  1268. #if YYDEBUG != 0
  1269.       if (yydebug)
  1270.     fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]);
  1271. #endif
  1272.     }
  1273.  
  1274.   yyn += yychar1;
  1275.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  1276.     goto yydefault;
  1277.  
  1278.   yyn = yytable[yyn];
  1279.  
  1280.   /* yyn is what to do for this token type in this state.
  1281.      Negative => reduce, -yyn is rule number.
  1282.      Positive => shift, yyn is new state.
  1283.        New state is final state => don't bother to shift,
  1284.        just return success.
  1285.      0, or most negative number => error.  */
  1286.  
  1287.   if (yyn < 0)
  1288.     {
  1289.       if (yyn == YYFLAG)
  1290.     goto yyerrlab;
  1291.       yyn = -yyn;
  1292.       goto yyreduce;
  1293.     }
  1294.   else if (yyn == 0)
  1295.     goto yyerrlab;
  1296.  
  1297.   if (yyn == YYFINAL)
  1298.     YYACCEPT;
  1299.  
  1300.   /* Shift the lookahead token.  */
  1301.  
  1302. #if YYDEBUG != 0
  1303.   if (yydebug)
  1304.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  1305. #endif
  1306.  
  1307.   /* Discard the token being shifted unless it is eof.  */
  1308.   if (yychar != YYEOF)
  1309.     yychar = YYEMPTY;
  1310.  
  1311.   *++yyvsp = yylval;
  1312. #ifdef YYLSP_NEEDED
  1313.   *++yylsp = yylloc;
  1314. #endif
  1315.  
  1316.   /* count tokens shifted since error; after three, turn off error status.  */
  1317.   if (yyerrstatus) yyerrstatus--;
  1318.  
  1319.   yystate = yyn;
  1320.   goto yynewstate;
  1321.  
  1322. /* Do the default action for the current state.  */
  1323. yydefault:
  1324.  
  1325.   yyn = yydefact[yystate];
  1326.   if (yyn == 0)
  1327.     goto yyerrlab;
  1328.  
  1329. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  1330. yyreduce:
  1331.   yylen = yyr2[yyn];
  1332.   yyval = yyvsp[1-yylen]; /* implement default value of the action */
  1333.  
  1334. #if YYDEBUG != 0
  1335.   if (yydebug)
  1336.     {
  1337.       if (yylen == 1)
  1338.     fprintf (stderr, "Reducing 1 value via rule %d (line %d), ",
  1339.          yyn, yyrline[yyn]);
  1340.       else
  1341.     fprintf (stderr, "Reducing %d values via rule %d (line %d), ",
  1342.          yylen, yyn, yyrline[yyn]);
  1343.     }
  1344. #endif
  1345.  
  1346.  
  1347.   switch (yyn) {
  1348.  
  1349. case 1:
  1350. #line 107 "perly.y"
  1351. {
  1352. #if defined(YYDEBUG) && defined(DEBUGGING)
  1353.             yydebug = (debug & 1);
  1354. #endif
  1355.         ;
  1356.     break;}
  1357. case 2:
  1358. #line 113 "perly.y"
  1359. { if (in_eval)
  1360.                 eval_root = block_head(yyvsp[0].cmdval);
  1361.                 else
  1362.                 main_root = block_head(yyvsp[0].cmdval); ;
  1363.     break;}
  1364. case 3:
  1365. #line 121 "perly.y"
  1366. { yyval.compval.comp_true = yyvsp[-2].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; ;
  1367.     break;}
  1368. case 4:
  1369. #line 123 "perly.y"
  1370. { yyval.compval.comp_true = yyvsp[-1].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; ;
  1371.     break;}
  1372. case 5:
  1373. #line 128 "perly.y"
  1374. { yyval.cmdval = Nullcmd; ;
  1375.     break;}
  1376. case 6:
  1377. #line 130 "perly.y"
  1378. { yyval.cmdval = yyvsp[0].cmdval; ;
  1379.     break;}
  1380. case 7:
  1381. #line 132 "perly.y"
  1382. { cmdline = yyvsp[-4].ival;
  1383.                 yyval.cmdval = make_ccmd(C_ELSIF,yyvsp[-2].arg,yyvsp[0].compval); ;
  1384.     break;}
  1385. case 8:
  1386. #line 138 "perly.y"
  1387. { yyval.cmdval = block_head(yyvsp[-1].cmdval);
  1388.               if (cmdline > yyvsp[-3].ival)
  1389.                   cmdline = yyvsp[-3].ival;
  1390.               if (savestack->ary_fill > yyvsp[-2].ival)
  1391.                 restorelist(yyvsp[-2].ival); ;
  1392.     break;}
  1393. case 9:
  1394. #line 147 "perly.y"
  1395. { yyval.ival = savestack->ary_fill; ;
  1396.     break;}
  1397. case 10:
  1398. #line 152 "perly.y"
  1399. { yyval.cmdval = Nullcmd; ;
  1400.     break;}
  1401. case 11:
  1402. #line 154 "perly.y"
  1403. { yyval.cmdval = append_line(yyvsp[-1].cmdval,yyvsp[0].cmdval); ;
  1404.     break;}
  1405. case 12:
  1406. #line 159 "perly.y"
  1407. { yyval.cmdval = Nullcmd; ;
  1408.     break;}
  1409. case 13:
  1410. #line 161 "perly.y"
  1411. { yyval.cmdval = add_label(yyvsp[-1].cval,yyvsp[0].cmdval); ;
  1412.     break;}
  1413. case 15:
  1414. #line 164 "perly.y"
  1415. { if (yyvsp[-1].cval != Nullch) {
  1416.                   yyval.cmdval = add_label(yyvsp[-1].cval, make_acmd(C_EXPR, Nullstab,
  1417.                   Nullarg, Nullarg) );
  1418.                 }
  1419.                 else {
  1420.                   yyval.cmdval = Nullcmd;
  1421.                   cmdline = NOLINE;
  1422.                 } ;
  1423.     break;}
  1424. case 16:
  1425. #line 173 "perly.y"
  1426. { yyval.cmdval = add_label(yyvsp[-2].cval,yyvsp[-1].cmdval); ;
  1427.     break;}
  1428. case 17:
  1429. #line 178 "perly.y"
  1430. { yyval.cmdval = Nullcmd; ;
  1431.     break;}
  1432. case 18:
  1433. #line 180 "perly.y"
  1434. { yyval.cmdval = make_acmd(C_EXPR, Nullstab, yyvsp[0].arg, Nullarg); ;
  1435.     break;}
  1436. case 19:
  1437. #line 182 "perly.y"
  1438. { yyval.cmdval = addcond(
  1439.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); ;
  1440.     break;}
  1441. case 20:
  1442. #line 185 "perly.y"
  1443. { yyval.cmdval = addcond(invert(
  1444.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); ;
  1445.     break;}
  1446. case 21:
  1447. #line 188 "perly.y"
  1448. { yyval.cmdval = addloop(
  1449.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); ;
  1450.     break;}
  1451. case 22:
  1452. #line 191 "perly.y"
  1453. { yyval.cmdval = addloop(invert(
  1454.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); ;
  1455.     break;}
  1456. case 23:
  1457. #line 197 "perly.y"
  1458. { cmdline = yyvsp[-4].ival;
  1459.                 yyval.cmdval = make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval); ;
  1460.     break;}
  1461. case 24:
  1462. #line 200 "perly.y"
  1463. { cmdline = yyvsp[-4].ival;
  1464.                 yyval.cmdval = invert(make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval)); ;
  1465.     break;}
  1466. case 25:
  1467. #line 203 "perly.y"
  1468. { cmdline = yyvsp[-2].ival;
  1469.                 yyval.cmdval = make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval); ;
  1470.     break;}
  1471. case 26:
  1472. #line 206 "perly.y"
  1473. { cmdline = yyvsp[-2].ival;
  1474.                 yyval.cmdval = invert(make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)); ;
  1475.     break;}
  1476. case 27:
  1477. #line 212 "perly.y"
  1478. { cmdline = yyvsp[-4].ival;
  1479.                 yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
  1480.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )); ;
  1481.     break;}
  1482. case 28:
  1483. #line 216 "perly.y"
  1484. { cmdline = yyvsp[-4].ival;
  1485.                 yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
  1486.                 invert(make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval)) )); ;
  1487.     break;}
  1488. case 29:
  1489. #line 220 "perly.y"
  1490. { cmdline = yyvsp[-2].ival;
  1491.                 yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
  1492.                 make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval) )); ;
  1493.     break;}
  1494. case 30:
  1495. #line 224 "perly.y"
  1496. { cmdline = yyvsp[-2].ival;
  1497.                 yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
  1498.                 invert(make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)) )); ;
  1499.     break;}
  1500. case 31:
  1501. #line 228 "perly.y"
  1502. { cmdline = yyvsp[-5].ival;
  1503.                 /*
  1504.                  * The following gobbledygook catches EXPRs that
  1505.                  * aren't explicit array refs and translates
  1506.                  *        foreach VAR (EXPR) {
  1507.                  * into
  1508.                  *        @ary = EXPR;
  1509.                  *        foreach VAR (@ary) {
  1510.                  * where @ary is a hidden array made by genstab().
  1511.                  * (Note that @ary may become a local array if
  1512.                  * it is determined that it might be called
  1513.                  * recursively.  See cmd_tosave().)
  1514.                  */
  1515.                 if (yyvsp[-2].arg->arg_type != O_ARRAY) {
  1516.                 scrstab = aadd(genstab());
  1517.                 yyval.cmdval = append_line(
  1518.                     make_acmd(C_EXPR, Nullstab,
  1519.                       l(make_op(O_ASSIGN,2,
  1520.                     listish(make_op(O_ARRAY, 1,
  1521.                       stab2arg(A_STAB,scrstab),
  1522.                       Nullarg,Nullarg )),
  1523.                     listish(make_list(yyvsp[-2].arg)),
  1524.                     Nullarg)),
  1525.                       Nullarg),
  1526.                     wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
  1527.                       make_ccmd(C_WHILE,
  1528.                     make_op(O_ARRAY, 1,
  1529.                       stab2arg(A_STAB,scrstab),
  1530.                       Nullarg,Nullarg ),
  1531.                     yyvsp[0].compval)))));
  1532.                 yyval.cmdval->c_line = yyvsp[-5].ival;
  1533.                 yyval.cmdval->c_head->c_line = yyvsp[-5].ival;
  1534.                 }
  1535.                 else {
  1536.                 yyval.cmdval = wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
  1537.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
  1538.                 }
  1539.             ;
  1540.     break;}
  1541. case 32:
  1542. #line 267 "perly.y"
  1543. { cmdline = yyvsp[-4].ival;
  1544.                 if (yyvsp[-2].arg->arg_type != O_ARRAY) {
  1545.                 scrstab = aadd(genstab());
  1546.                 yyval.cmdval = append_line(
  1547.                     make_acmd(C_EXPR, Nullstab,
  1548.                       l(make_op(O_ASSIGN,2,
  1549.                     listish(make_op(O_ARRAY, 1,
  1550.                       stab2arg(A_STAB,scrstab),
  1551.                       Nullarg,Nullarg )),
  1552.                     listish(make_list(yyvsp[-2].arg)),
  1553.                     Nullarg)),
  1554.                       Nullarg),
  1555.                     wopt(over(defstab,add_label(yyvsp[-5].cval,
  1556.                       make_ccmd(C_WHILE,
  1557.                     make_op(O_ARRAY, 1,
  1558.                       stab2arg(A_STAB,scrstab),
  1559.                       Nullarg,Nullarg ),
  1560.                     yyvsp[0].compval)))));
  1561.                 yyval.cmdval->c_line = yyvsp[-4].ival;
  1562.                 yyval.cmdval->c_head->c_line = yyvsp[-4].ival;
  1563.                 }
  1564.                 else {    /* lisp, anyone? */
  1565.                 yyval.cmdval = wopt(over(defstab,add_label(yyvsp[-5].cval,
  1566.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
  1567.                 }
  1568.             ;
  1569.     break;}
  1570. case 33:
  1571. #line 295 "perly.y"
  1572. {   yyval.compval.comp_true = yyvsp[0].cmdval;
  1573.                 yyval.compval.comp_alt = yyvsp[-2].cmdval;
  1574.                 cmdline = yyvsp[-8].ival;
  1575.                 yyval.cmdval = append_line(yyvsp[-6].cmdval,wopt(add_label(yyvsp[-9].cval,
  1576.                 make_ccmd(C_WHILE,yyvsp[-4].arg,yyval.compval) ))); ;
  1577.     break;}
  1578. case 34:
  1579. #line 301 "perly.y"
  1580. { yyval.cmdval = add_label(yyvsp[-1].cval,make_ccmd(C_BLOCK,Nullarg,yyvsp[0].compval)); ;
  1581.     break;}
  1582. case 35:
  1583. #line 306 "perly.y"
  1584. { yyval.cmdval = Nullcmd; ;
  1585.     break;}
  1586. case 37:
  1587. #line 312 "perly.y"
  1588. { (void)scanstr("1"); yyval.arg = yylval.arg; ;
  1589.     break;}
  1590. case 39:
  1591. #line 318 "perly.y"
  1592. { yyval.cval = Nullch; ;
  1593.     break;}
  1594. case 41:
  1595. #line 324 "perly.y"
  1596. { yyval.ival = 0; ;
  1597.     break;}
  1598. case 42:
  1599. #line 326 "perly.y"
  1600. { yyval.ival = 0; ;
  1601.     break;}
  1602. case 43:
  1603. #line 328 "perly.y"
  1604. { yyval.ival = 0; ;
  1605.     break;}
  1606. case 44:
  1607. #line 333 "perly.y"
  1608. { if (strEQ(yyvsp[-2].cval,"stdout"))
  1609.                 make_form(stabent("STDOUT",TRUE),yyvsp[0].formval);
  1610.               else if (strEQ(yyvsp[-2].cval,"stderr"))
  1611.                 make_form(stabent("STDERR",TRUE),yyvsp[0].formval);
  1612.               else
  1613.                 make_form(stabent(yyvsp[-2].cval,TRUE),yyvsp[0].formval);
  1614.               Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; ;
  1615.     break;}
  1616. case 45:
  1617. #line 341 "perly.y"
  1618. { make_form(stabent("STDOUT",TRUE),yyvsp[0].formval); ;
  1619.     break;}
  1620. case 46:
  1621. #line 346 "perly.y"
  1622. { make_sub(yyvsp[-1].cval,yyvsp[0].cmdval);
  1623.               cmdline = NOLINE;
  1624.               if (savestack->ary_fill > yyvsp[-2].ival)
  1625.                 restorelist(yyvsp[-2].ival); ;
  1626.     break;}
  1627. case 47:
  1628. #line 354 "perly.y"
  1629. { char tmpbuf[256];
  1630.               STAB *tmpstab;
  1631.  
  1632.  
  1633.               savehptr(&curstash);
  1634.               saveitem(curstname);
  1635.               str_set(curstname,yyvsp[-1].cval);
  1636.               sprintf(tmpbuf,"'_%s",yyvsp[-1].cval);
  1637.               tmpstab = stabent(tmpbuf,TRUE);
  1638.               if (!stab_xhash(tmpstab))
  1639.                   stab_xhash(tmpstab) = hnew(0);
  1640.               curstash = stab_xhash(tmpstab);
  1641.               if (!curstash->tbl_name)
  1642.                   curstash->tbl_name = savestr(yyvsp[-1].cval);
  1643.               curstash->tbl_coeffsize = 0;
  1644.               Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch;
  1645.               cmdline = NOLINE;
  1646.             ;
  1647.     break;}
  1648. case 48:
  1649. #line 376 "perly.y"
  1650. { yyval.arg = yyvsp[0].arg; ;
  1651.     break;}
  1652. case 49:
  1653. #line 381 "perly.y"
  1654. { yyval.arg = make_op(O_COMMA, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1655.     break;}
  1656. case 51:
  1657. #line 387 "perly.y"
  1658. { yyval.arg = yyvsp[0].arg; ;
  1659.     break;}
  1660. case 52:
  1661. #line 392 "perly.y"
  1662. {   yyvsp[-2].arg = listish(yyvsp[-2].arg);
  1663.                 if (yyvsp[-2].arg->arg_type == O_ASSIGN && yyvsp[-2].arg->arg_len == 1)
  1664.                 yyvsp[-2].arg->arg_type = O_ITEM;    /* a local() */
  1665.                 if (yyvsp[-2].arg->arg_type == O_LIST)
  1666.                 yyvsp[0].arg = listish(yyvsp[0].arg);
  1667.                 yyval.arg = l(make_op(O_ASSIGN, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg)); ;
  1668.     break;}
  1669. case 53:
  1670. #line 399 "perly.y"
  1671. { yyval.arg = l(make_op(O_POW, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1672.     break;}
  1673. case 54:
  1674. #line 401 "perly.y"
  1675. { yyval.arg = l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1676.     break;}
  1677. case 55:
  1678. #line 403 "perly.y"
  1679. { yyval.arg = rcatmaybe(l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)));;
  1680.     break;}
  1681. case 56:
  1682. #line 405 "perly.y"
  1683. { yyval.arg = l(make_op(O_LEFT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1684.     break;}
  1685. case 57:
  1686. #line 407 "perly.y"
  1687. { yyval.arg = l(make_op(O_RIGHT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1688.     break;}
  1689. case 58:
  1690. #line 409 "perly.y"
  1691. { yyval.arg = l(make_op(O_BIT_AND, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1692.     break;}
  1693. case 59:
  1694. #line 411 "perly.y"
  1695. { yyval.arg = l(make_op(O_XOR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1696.     break;}
  1697. case 60:
  1698. #line 413 "perly.y"
  1699. { yyval.arg = l(make_op(O_BIT_OR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1700.     break;}
  1701. case 61:
  1702. #line 419 "perly.y"
  1703. { yyval.arg = make_op(O_POW, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1704.     break;}
  1705. case 62:
  1706. #line 421 "perly.y"
  1707. { if (yyvsp[-1].ival == O_REPEAT)
  1708.                   yyvsp[-2].arg = listish(yyvsp[-2].arg);
  1709.                 yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg);
  1710.                 if (yyvsp[-1].ival == O_REPEAT) {
  1711.                 if (yyval.arg[1].arg_type != A_EXPR ||
  1712.                   yyval.arg[1].arg_ptr.arg_arg->arg_type != O_LIST)
  1713.                     yyval.arg[1].arg_flags &= ~AF_ARYOK;
  1714.                 } ;
  1715.     break;}
  1716. case 63:
  1717. #line 430 "perly.y"
  1718. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1719.     break;}
  1720. case 64:
  1721. #line 432 "perly.y"
  1722. { yyval.arg = make_op(O_LEFT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1723.     break;}
  1724. case 65:
  1725. #line 434 "perly.y"
  1726. { yyval.arg = make_op(O_RIGHT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1727.     break;}
  1728. case 66:
  1729. #line 436 "perly.y"
  1730. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1731.     break;}
  1732. case 67:
  1733. #line 438 "perly.y"
  1734. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1735.     break;}
  1736. case 68:
  1737. #line 440 "perly.y"
  1738. { yyval.arg = make_op(O_BIT_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1739.     break;}
  1740. case 69:
  1741. #line 442 "perly.y"
  1742. { yyval.arg = make_op(O_XOR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1743.     break;}
  1744. case 70:
  1745. #line 444 "perly.y"
  1746. { yyval.arg = make_op(O_BIT_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1747.     break;}
  1748. case 71:
  1749. #line 446 "perly.y"
  1750. { arg4 = Nullarg;
  1751.               yyval.arg = make_op(O_F_OR_R, 4, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1752.     break;}
  1753. case 72:
  1754. #line 449 "perly.y"
  1755. { yyval.arg = make_op(O_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1756.     break;}
  1757. case 73:
  1758. #line 451 "perly.y"
  1759. { yyval.arg = make_op(O_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1760.     break;}
  1761. case 74:
  1762. #line 453 "perly.y"
  1763. { yyval.arg = make_op(O_COND_EXPR, 3, yyvsp[-4].arg, yyvsp[-2].arg, yyvsp[0].arg); ;
  1764.     break;}
  1765. case 75:
  1766. #line 455 "perly.y"
  1767. { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg, yyvsp[0].arg); ;
  1768.     break;}
  1769. case 76:
  1770. #line 457 "perly.y"
  1771. { yyval.arg = mod_match(O_NMATCH, yyvsp[-2].arg, yyvsp[0].arg); ;
  1772.     break;}
  1773. case 77:
  1774. #line 459 "perly.y"
  1775. { yyval.arg = yyvsp[0].arg; ;
  1776.     break;}
  1777. case 78:
  1778. #line 464 "perly.y"
  1779. { yyval.arg = make_op(O_NEGATE, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  1780.     break;}
  1781. case 79:
  1782. #line 466 "perly.y"
  1783. { yyval.arg = yyvsp[0].arg; ;
  1784.     break;}
  1785. case 80:
  1786. #line 468 "perly.y"
  1787. { yyval.arg = make_op(O_NOT, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  1788.     break;}
  1789. case 81:
  1790. #line 470 "perly.y"
  1791. { yyval.arg = make_op(O_COMPLEMENT, 1, yyvsp[0].arg, Nullarg, Nullarg);;
  1792.     break;}
  1793. case 82:
  1794. #line 472 "perly.y"
  1795. { yyval.arg = addflags(1, AF_POST|AF_UP,
  1796.                 l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); ;
  1797.     break;}
  1798. case 83:
  1799. #line 475 "perly.y"
  1800. { yyval.arg = addflags(1, AF_POST,
  1801.                 l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); ;
  1802.     break;}
  1803. case 84:
  1804. #line 478 "perly.y"
  1805. { yyval.arg = addflags(1, AF_PRE|AF_UP,
  1806.                 l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); ;
  1807.     break;}
  1808. case 85:
  1809. #line 481 "perly.y"
  1810. { yyval.arg = addflags(1, AF_PRE,
  1811.                 l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); ;
  1812.     break;}
  1813. case 86:
  1814. #line 484 "perly.y"
  1815. { opargs[yyvsp[-1].ival] = 0;    /* force it special */
  1816.                 yyval.arg = make_op(yyvsp[-1].ival, 1,
  1817.                 stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
  1818.                 Nullarg, Nullarg);
  1819.             ;
  1820.     break;}
  1821. case 87:
  1822. #line 490 "perly.y"
  1823. { opargs[yyvsp[-1].ival] = 1;
  1824.                 yyval.arg = make_op(yyvsp[-1].ival, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  1825.     break;}
  1826. case 88:
  1827. #line 493 "perly.y"
  1828. { opargs[yyvsp[0].ival] = (yyvsp[0].ival != O_FTTTY);
  1829.                 yyval.arg = make_op(yyvsp[0].ival, 1,
  1830.                 stab2arg(A_STAB,
  1831.                   yyvsp[0].ival == O_FTTTY?stabent("STDIN",TRUE):defstab),
  1832.                 Nullarg, Nullarg); ;
  1833.     break;}
  1834. case 89:
  1835. #line 499 "perly.y"
  1836. { yyval.arg = l(localize(make_op(O_ASSIGN, 1,
  1837.                 localize(listish(make_list(yyvsp[-1].arg))),
  1838.                 Nullarg,Nullarg))); ;
  1839.     break;}
  1840. case 90:
  1841. #line 503 "perly.y"
  1842. { yyval.arg = make_list(yyvsp[-1].arg); ;
  1843.     break;}
  1844. case 91:
  1845. #line 505 "perly.y"
  1846. { yyval.arg = make_list(Nullarg); ;
  1847.     break;}
  1848. case 92:
  1849. #line 507 "perly.y"
  1850. { yyval.arg = make_op(O_DOFILE,2,yyvsp[0].arg,Nullarg,Nullarg);
  1851.               allstabs = TRUE;;
  1852.     break;}
  1853. case 93:
  1854. #line 510 "perly.y"
  1855. { yyval.arg = cmd_to_arg(yyvsp[0].cmdval); ;
  1856.     break;}
  1857. case 94:
  1858. #line 512 "perly.y"
  1859. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); ;
  1860.     break;}
  1861. case 95:
  1862. #line 514 "perly.y"
  1863. { yyval.arg = stab2arg(A_STAR,yyvsp[0].stabval); ;
  1864.     break;}
  1865. case 96:
  1866. #line 516 "perly.y"
  1867. { yyval.arg = make_op(O_AELEM, 2,
  1868.                 stab2arg(A_STAB,aadd(yyvsp[-3].stabval)), yyvsp[-1].arg, Nullarg); ;
  1869.     break;}
  1870. case 97:
  1871. #line 519 "perly.y"
  1872. { yyval.arg = make_op(O_HASH, 1,
  1873.                 stab2arg(A_STAB,yyvsp[0].stabval),
  1874.                 Nullarg, Nullarg); ;
  1875.     break;}
  1876. case 98:
  1877. #line 523 "perly.y"
  1878. { yyval.arg = make_op(O_ARRAY, 1,
  1879.                 stab2arg(A_STAB,yyvsp[0].stabval),
  1880.                 Nullarg, Nullarg); ;
  1881.     break;}
  1882. case 99:
  1883. #line 527 "perly.y"
  1884. { yyval.arg = make_op(O_HELEM, 2,
  1885.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  1886.                 jmaybe(yyvsp[-1].arg),
  1887.                 Nullarg); ;
  1888.     break;}
  1889. case 100:
  1890. #line 532 "perly.y"
  1891. { yyval.arg = make_op(O_LSLICE, 3,
  1892.                 Nullarg,
  1893.                 listish(make_list(yyvsp[-1].arg)),
  1894.                 listish(make_list(yyvsp[-4].arg))); ;
  1895.     break;}
  1896. case 101:
  1897. #line 537 "perly.y"
  1898. { yyval.arg = make_op(O_LSLICE, 3,
  1899.                 Nullarg,
  1900.                 listish(make_list(yyvsp[-1].arg)),
  1901.                 Nullarg); ;
  1902.     break;}
  1903. case 102:
  1904. #line 542 "perly.y"
  1905. { yyval.arg = make_op(O_ASLICE, 2,
  1906.                 stab2arg(A_STAB,aadd(yyvsp[-3].stabval)),
  1907.                 listish(make_list(yyvsp[-1].arg)),
  1908.                 Nullarg); ;
  1909.     break;}
  1910. case 103:
  1911. #line 547 "perly.y"
  1912. { yyval.arg = make_op(O_HSLICE, 2,
  1913.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  1914.                 listish(make_list(yyvsp[-1].arg)),
  1915.                 Nullarg); ;
  1916.     break;}
  1917. case 104:
  1918. #line 552 "perly.y"
  1919. { yyval.arg = make_op(O_DELETE, 2,
  1920.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  1921.                 jmaybe(yyvsp[-1].arg),
  1922.                 Nullarg); ;
  1923.     break;}
  1924. case 105:
  1925. #line 557 "perly.y"
  1926. { yyval.arg = stab2arg(A_ARYLEN,yyvsp[0].stabval); ;
  1927.     break;}
  1928. case 106:
  1929. #line 559 "perly.y"
  1930. { yyval.arg = yyvsp[0].arg; ;
  1931.     break;}
  1932. case 107:
  1933. #line 561 "perly.y"
  1934. { yyval.arg = yyvsp[0].arg; ;
  1935.     break;}
  1936. case 108:
  1937. #line 563 "perly.y"
  1938. { yyval.arg = yyvsp[0].arg; ;
  1939.     break;}
  1940. case 109:
  1941. #line 565 "perly.y"
  1942. { yyval.arg = yyvsp[0].arg; ;
  1943.     break;}
  1944. case 110:
  1945. #line 567 "perly.y"
  1946. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1947.                 stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
  1948.                 make_list(yyvsp[-1].arg),
  1949.                 Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch;
  1950.                 yyval.arg->arg_flags |= AF_DEPR; ;
  1951.     break;}
  1952. case 111:
  1953. #line 573 "perly.y"
  1954. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1955.                 stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
  1956.                 make_list(yyvsp[-1].arg),
  1957.                 Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch; ;
  1958.     break;}
  1959. case 112:
  1960. #line 578 "perly.y"
  1961. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1962.                 stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
  1963.                 make_list(Nullarg),
  1964.                 Nullarg);
  1965.                 yyval.arg->arg_flags |= AF_DEPR; ;
  1966.     break;}
  1967. case 113:
  1968. #line 584 "perly.y"
  1969. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1970.                 stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
  1971.                 make_list(Nullarg),
  1972.                 Nullarg); ;
  1973.     break;}
  1974. case 114:
  1975. #line 589 "perly.y"
  1976. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1977.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,MULTI)),
  1978.                 Nullarg,
  1979.                 Nullarg); ;
  1980.     break;}
  1981. case 115:
  1982. #line 594 "perly.y"
  1983. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1984.                 stab2arg(A_STAB,yyvsp[-3].stabval),
  1985.                 make_list(yyvsp[-1].arg),
  1986.                 Nullarg);
  1987.                 yyval.arg->arg_flags |= AF_DEPR; ;
  1988.     break;}
  1989. case 116:
  1990. #line 600 "perly.y"
  1991. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1992.                 stab2arg(A_STAB,yyvsp[-3].stabval),
  1993.                 make_list(yyvsp[-1].arg),
  1994.                 Nullarg); ;
  1995.     break;}
  1996. case 117:
  1997. #line 605 "perly.y"
  1998. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1999.                 stab2arg(A_STAB,yyvsp[-2].stabval),
  2000.                 make_list(Nullarg),
  2001.                 Nullarg);
  2002.                 yyval.arg->arg_flags |= AF_DEPR; ;
  2003.     break;}
  2004. case 118:
  2005. #line 611 "perly.y"
  2006. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2007.                 stab2arg(A_STAB,yyvsp[-2].stabval),
  2008.                 make_list(Nullarg),
  2009.                 Nullarg); ;
  2010.     break;}
  2011. case 119:
  2012. #line 616 "perly.y"
  2013. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2014.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2015.                 Nullarg,
  2016.                 Nullarg); ;
  2017.     break;}
  2018. case 120:
  2019. #line 621 "perly.y"
  2020. { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); ;
  2021.     break;}
  2022. case 121:
  2023. #line 623 "perly.y"
  2024. { yyval.arg = make_op(yyvsp[-1].ival,1,cval_to_arg(yyvsp[0].cval),
  2025.                 Nullarg,Nullarg); ;
  2026.     break;}
  2027. case 122:
  2028. #line 626 "perly.y"
  2029. { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); ;
  2030.     break;}
  2031. case 123:
  2032. #line 628 "perly.y"
  2033. { yyval.arg = make_op(yyvsp[-1].ival,1,cmd_to_arg(yyvsp[0].cmdval),Nullarg,Nullarg); ;
  2034.     break;}
  2035. case 124:
  2036. #line 630 "perly.y"
  2037. { yyval.arg = make_op(yyvsp[-1].ival,1,yyvsp[0].arg,Nullarg,Nullarg); ;
  2038.     break;}
  2039. case 125:
  2040. #line 632 "perly.y"
  2041. { yyval.arg = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);;
  2042.     break;}
  2043. case 126:
  2044. #line 634 "perly.y"
  2045. { yyval.arg = make_op(O_SELECT, 1,
  2046.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2047.                 Nullarg,
  2048.                 Nullarg);
  2049.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2050.     break;}
  2051. case 127:
  2052. #line 640 "perly.y"
  2053. { yyval.arg = make_op(O_SELECT, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2054.     break;}
  2055. case 128:
  2056. #line 642 "perly.y"
  2057. { arg4 = yyvsp[-1].arg;
  2058.               yyval.arg = make_op(O_SSELECT, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); ;
  2059.     break;}
  2060. case 129:
  2061. #line 645 "perly.y"
  2062. { yyval.arg = make_op(O_OPEN, 2,
  2063.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2064.                 stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
  2065.                 Nullarg); ;
  2066.     break;}
  2067. case 130:
  2068. #line 650 "perly.y"
  2069. { yyval.arg = make_op(O_OPEN, 2,
  2070.                 stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
  2071.                 stab2arg(A_STAB,stabent(yyvsp[-1].cval,TRUE)),
  2072.                 Nullarg); ;
  2073.     break;}
  2074. case 131:
  2075. #line 655 "perly.y"
  2076. { yyval.arg = make_op(O_OPEN, 2,
  2077.                 yyvsp[-2].arg,
  2078.                 yyvsp[-1].arg, Nullarg); ;
  2079.     break;}
  2080. case 132:
  2081. #line 659 "perly.y"
  2082. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2083.                 yyvsp[-1].arg,
  2084.                 Nullarg, Nullarg); ;
  2085.     break;}
  2086. case 133:
  2087. #line 663 "perly.y"
  2088. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2089.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2090.                 Nullarg, Nullarg);
  2091.               Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2092.     break;}
  2093. case 134:
  2094. #line 668 "perly.y"
  2095. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2096.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2097.                 Nullarg, Nullarg); ;
  2098.     break;}
  2099. case 135:
  2100. #line 672 "perly.y"
  2101. { yyval.arg = make_op(yyvsp[-2].ival, 1,
  2102.                 stab2arg(A_WORD,Nullstab),
  2103.                 Nullarg, Nullarg); ;
  2104.     break;}
  2105. case 136:
  2106. #line 676 "perly.y"
  2107. { yyval.arg = make_op(yyvsp[0].ival, 0,
  2108.                 Nullarg, Nullarg, Nullarg); ;
  2109.     break;}
  2110. case 137:
  2111. #line 679 "perly.y"
  2112. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); ;
  2113.     break;}
  2114. case 138:
  2115. #line 681 "perly.y"
  2116. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, make_list(yyvsp[-1].arg)); ;
  2117.     break;}
  2118. case 139:
  2119. #line 683 "perly.y"
  2120. { yyval.arg = make_op(yyvsp[-5].ival, 2, yyvsp[-3].arg, yyvsp[-1].arg, Nullarg); ;
  2121.     break;}
  2122. case 140:
  2123. #line 685 "perly.y"
  2124. { arg4 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); ;
  2125.     break;}
  2126. case 141:
  2127. #line 687 "perly.y"
  2128. { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
  2129.               yyval.arg = make_op(yyvsp[-8].ival, 5, yyvsp[-6].arg, yyvsp[-4].arg, yyvsp[-3].arg); ;
  2130.     break;}
  2131. case 142:
  2132. #line 690 "perly.y"
  2133. { yyval.arg = make_op(yyvsp[-5].ival, 2,
  2134.                 yyvsp[-3].arg,
  2135.                 make_list(yyvsp[-1].arg),
  2136.                 Nullarg); ;
  2137.     break;}
  2138. case 143:
  2139. #line 695 "perly.y"
  2140. { yyval.arg = make_op(O_POP, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  2141.     break;}
  2142. case 144:
  2143. #line 697 "perly.y"
  2144. { yyval.arg = make_op(O_POP, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2145.     break;}
  2146. case 145:
  2147. #line 699 "perly.y"
  2148. { yyval.arg = make_op(O_SHIFT, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  2149.     break;}
  2150. case 146:
  2151. #line 701 "perly.y"
  2152. { yyval.arg = make_op(O_SHIFT, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2153.     break;}
  2154. case 147:
  2155. #line 703 "perly.y"
  2156. { yyval.arg = make_op(O_SHIFT, 1,
  2157.                 stab2arg(A_STAB,
  2158.                   aadd(stabent(subline ? "_" : "ARGV", TRUE))),
  2159.                 Nullarg, Nullarg); ;
  2160.     break;}
  2161. case 148:
  2162. #line 708 "perly.y"
  2163. {   static char p[]="/\\s+/";
  2164.                 char *oldend = bufend;
  2165.                 ARG *oldarg = yylval.arg;
  2166.     
  2167.                 bufend=p+5;
  2168.                 (void)scanpat(p);
  2169.                 bufend=oldend;
  2170.                 yyval.arg = make_split(defstab,yylval.arg,Nullarg);
  2171.                 yylval.arg = oldarg; ;
  2172.     break;}
  2173. case 149:
  2174. #line 718 "perly.y"
  2175. { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg,
  2176.               make_split(defstab,yyvsp[-3].arg,yyvsp[-1].arg));;
  2177.     break;}
  2178. case 150:
  2179. #line 721 "perly.y"
  2180. { yyval.arg = mod_match(O_MATCH, yyvsp[-1].arg,
  2181.               make_split(defstab,yyvsp[-2].arg,Nullarg) ); ;
  2182.     break;}
  2183. case 151:
  2184. #line 724 "perly.y"
  2185. { yyval.arg = mod_match(O_MATCH,
  2186.                 stab2arg(A_STAB,defstab),
  2187.                 make_split(defstab,yyvsp[-1].arg,Nullarg) ); ;
  2188.     break;}
  2189. case 152:
  2190. #line 728 "perly.y"
  2191. { yyval.arg = make_op(yyvsp[-4].ival, 2,
  2192.                 yyvsp[-2].arg,
  2193.                 listish(make_list(yyvsp[-1].arg)),
  2194.                 Nullarg); ;
  2195.     break;}
  2196. case 153:
  2197. #line 733 "perly.y"
  2198. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2199.                 make_list(yyvsp[-1].arg),
  2200.                 Nullarg,
  2201.                 Nullarg); ;
  2202.     break;}
  2203. case 154:
  2204. #line 738 "perly.y"
  2205. { yyval.arg = l(make_op(yyvsp[-1].ival, 1, fixl(yyvsp[-1].ival,yyvsp[0].arg),
  2206.                 Nullarg, Nullarg)); ;
  2207.     break;}
  2208. case 155:
  2209. #line 741 "perly.y"
  2210. { yyval.arg = l(make_op(yyvsp[0].ival, 1,
  2211.                 stab2arg(A_STAB,defstab),
  2212.                 Nullarg, Nullarg)); ;
  2213.     break;}
  2214. case 156:
  2215. #line 745 "perly.y"
  2216. { yyval.arg = make_op(yyvsp[0].ival, 0, Nullarg, Nullarg, Nullarg); ;
  2217.     break;}
  2218. case 157:
  2219. #line 747 "perly.y"
  2220. { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); ;
  2221.     break;}
  2222. case 158:
  2223. #line 749 "perly.y"
  2224. { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); ;
  2225.     break;}
  2226. case 159:
  2227. #line 751 "perly.y"
  2228. { yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2229.     break;}
  2230. case 160:
  2231. #line 753 "perly.y"
  2232. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
  2233.                 if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2234.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); ;
  2235.     break;}
  2236. case 161:
  2237. #line 757 "perly.y"
  2238. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
  2239.                 if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2240.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); ;
  2241.     break;}
  2242. case 162:
  2243. #line 761 "perly.y"
  2244. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg);
  2245.                 if (yyvsp[-5].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2246.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); ;
  2247.     break;}
  2248. case 163:
  2249. #line 765 "perly.y"
  2250. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); ;
  2251.     break;}
  2252. case 164:
  2253. #line 767 "perly.y"
  2254. { arg4 = yyvsp[-1].arg;
  2255.               yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); ;
  2256.     break;}
  2257. case 165:
  2258. #line 770 "perly.y"
  2259. { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
  2260.               yyval.arg = make_op(yyvsp[-7].ival, 5, yyvsp[-5].arg, yyvsp[-4].arg, yyvsp[-3].arg); ;
  2261.     break;}
  2262. case 166:
  2263. #line 773 "perly.y"
  2264. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2265.                 yyvsp[-1].arg,
  2266.                 Nullarg,
  2267.                 Nullarg); ;
  2268.     break;}
  2269. case 167:
  2270. #line 778 "perly.y"
  2271. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2272.                 yyvsp[0].arg,
  2273.                 Nullarg,
  2274.                 Nullarg); ;
  2275.     break;}
  2276. case 168:
  2277. #line 783 "perly.y"
  2278. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); ;
  2279.     break;}
  2280. case 171:
  2281. #line 790 "perly.y"
  2282. { yyval.arg = make_op(yyvsp[0].ival,2,
  2283.                 stab2arg(A_WORD,Nullstab),
  2284.                 stab2arg(A_STAB,defstab),
  2285.                 Nullarg); ;
  2286.     break;}
  2287. case 172:
  2288. #line 795 "perly.y"
  2289. { yyval.arg = make_op(yyvsp[-1].ival,2,
  2290.                 stab2arg(A_WORD,Nullstab),
  2291.                 maybelistish(yyvsp[-1].ival,make_list(yyvsp[0].arg)),
  2292.                 Nullarg); ;
  2293.     break;}
  2294. case 173:
  2295. #line 800 "perly.y"
  2296. { yyval.arg = make_op(yyvsp[-1].ival,2,
  2297.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2298.                 stab2arg(A_STAB,defstab),
  2299.                 Nullarg); ;
  2300.     break;}
  2301. case 174:
  2302. #line 805 "perly.y"
  2303. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2304.                 stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
  2305.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2306.                 Nullarg); Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; ;
  2307.     break;}
  2308. case 175:
  2309. #line 810 "perly.y"
  2310. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2311.                 stab2arg(A_STAB,yyvsp[-1].stabval),
  2312.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2313.                 Nullarg); ;
  2314.     break;}
  2315. case 176:
  2316. #line 815 "perly.y"
  2317. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2318.                 cmd_to_arg(yyvsp[-1].cmdval),
  2319.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2320.                 Nullarg); ;
  2321.     break;}
  2322. case 177:
  2323. #line 823 "perly.y"
  2324. { yyval.arg = stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE));
  2325.               Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;;
  2326.     break;}
  2327. case 179:
  2328. #line 830 "perly.y"
  2329. { yyval.arg = stab2arg(A_WORD,aadd(stabent(yyvsp[0].cval,TRUE)));
  2330.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2331.     break;}
  2332. case 180:
  2333. #line 833 "perly.y"
  2334. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); ;
  2335.     break;}
  2336. case 181:
  2337. #line 838 "perly.y"
  2338. { yyval.arg = stab2arg(A_WORD,hadd(stabent(yyvsp[0].cval,TRUE)));
  2339.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2340.     break;}
  2341. case 182:
  2342. #line 841 "perly.y"
  2343. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); ;
  2344.     break;}
  2345. case 183:
  2346. #line 846 "perly.y"
  2347. { yyval.ival = 1; ;
  2348.     break;}
  2349. case 184:
  2350. #line 848 "perly.y"
  2351. { yyval.ival = 0; ;
  2352.     break;}
  2353. case 185:
  2354. #line 859 "perly.y"
  2355. { char *s;
  2356.                 yyval.arg = op_new(1);
  2357.                 yyval.arg->arg_type = O_ITEM;
  2358.                 yyval.arg[1].arg_type = A_SINGLE;
  2359.                 yyval.arg[1].arg_ptr.arg_str = str_make(yyvsp[0].cval,0);
  2360.                 for (s = yyvsp[0].cval; *s && isLOWER(*s); s++) ;
  2361.                 if (dowarn && !*s)
  2362.                 warn(
  2363.                   "\"%s\" may clash with future reserved word",
  2364.                   yyvsp[0].cval );
  2365.             ;
  2366.     break;}
  2367. }
  2368.    /* the action file gets copied in in place of this dollarsign */
  2369. #line 362 "bison.simple"
  2370.  
  2371.   yyvsp -= yylen;
  2372.   yyssp -= yylen;
  2373. #ifdef YYLSP_NEEDED
  2374.   yylsp -= yylen;
  2375. #endif
  2376.  
  2377. #if YYDEBUG != 0
  2378.   if (yydebug)
  2379.     {
  2380.       short *ssp1 = yyss - 1;
  2381.       fprintf (stderr, "state stack now");
  2382.       while (ssp1 != yyssp)
  2383.     fprintf (stderr, " %d", *++ssp1);
  2384.       fprintf (stderr, "\n");
  2385.     }
  2386. #endif
  2387.  
  2388.   *++yyvsp = yyval;
  2389.  
  2390. #ifdef YYLSP_NEEDED
  2391.   yylsp++;
  2392.   if (yylen == 0)
  2393.     {
  2394.       yylsp->first_line = yylloc.first_line;
  2395.       yylsp->first_column = yylloc.first_column;
  2396.       yylsp->last_line = (yylsp-1)->last_line;
  2397.       yylsp->last_column = (yylsp-1)->last_column;
  2398.       yylsp->text = 0;
  2399.     }
  2400.   else
  2401.     {
  2402.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  2403.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  2404.     }
  2405. #endif
  2406.  
  2407.   /* Now "shift" the result of the reduction.
  2408.      Determine what state that goes to,
  2409.      based on the state we popped back to
  2410.      and the rule number reduced by.  */
  2411.  
  2412.   yyn = yyr1[yyn];
  2413.  
  2414.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  2415.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  2416.     yystate = yytable[yystate];
  2417.   else
  2418.     yystate = yydefgoto[yyn - YYNTBASE];
  2419.  
  2420.   goto yynewstate;
  2421.  
  2422. yyerrlab:   /* here on detecting error */
  2423.  
  2424.   if (! yyerrstatus)
  2425.     /* If not already recovering from an error, report this error.  */
  2426.     {
  2427.       ++yynerrs;
  2428.  
  2429. #ifdef YYERROR_VERBOSE
  2430.       yyn = yypact[yystate];
  2431.  
  2432.       if (yyn > YYFLAG && yyn < YYLAST)
  2433.     {
  2434.       int size = 0;
  2435.       char *msg;
  2436.       int x, count;
  2437.  
  2438.       count = 0;
  2439.       for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
  2440.         if (yycheck[x + yyn] == x)
  2441.           size += strlen(yytname[x]) + 15, count++;
  2442.       msg = (char *) xmalloc(size + 15);
  2443.       strcpy(msg, "parse error");
  2444.  
  2445.       if (count < 5)
  2446.         {
  2447.           count = 0;
  2448.           for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
  2449.         if (yycheck[x + yyn] == x)
  2450.           {
  2451.             strcat(msg, count == 0 ? ", expecting `" : " or `");
  2452.             strcat(msg, yytname[x]);
  2453.             strcat(msg, "'");
  2454.             count++;
  2455.           }
  2456.         }
  2457.       yyerror(msg);
  2458.       free(msg);
  2459.     }
  2460.       else
  2461. #endif /* YYERROR_VERBOSE */
  2462.     yyerror("parse error");
  2463.     }
  2464.  
  2465. yyerrlab1:   /* here on error raised explicitly by an action */
  2466.  
  2467.   if (yyerrstatus == 3)
  2468.     {
  2469.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  2470.  
  2471.       /* return failure if at end of input */
  2472.       if (yychar == YYEOF)
  2473.     YYABORT;
  2474.  
  2475. #if YYDEBUG != 0
  2476.       if (yydebug)
  2477.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  2478. #endif
  2479.  
  2480.       yychar = YYEMPTY;
  2481.     }
  2482.  
  2483.   /* Else will try to reuse lookahead token
  2484.      after shifting the error token.  */
  2485.  
  2486.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  2487.  
  2488.   goto yyerrhandle;
  2489.  
  2490. yyerrdefault:  /* current state does not do anything special for the error token. */
  2491.  
  2492. #if 0
  2493.   /* This is wrong; only states that explicitly want error tokens
  2494.      should shift them.  */
  2495.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  2496.   if (yyn) goto yydefault;
  2497. #endif
  2498.  
  2499. yyerrpop:   /* pop the current state because it cannot handle the error token */
  2500.  
  2501.   if (yyssp == yyss) YYABORT;
  2502.   yyvsp--;
  2503.   yystate = *--yyssp;
  2504. #ifdef YYLSP_NEEDED
  2505.   yylsp--;
  2506. #endif
  2507.  
  2508. #if YYDEBUG != 0
  2509.   if (yydebug)
  2510.     {
  2511.       short *ssp1 = yyss - 1;
  2512.       fprintf (stderr, "Error: state stack now");
  2513.       while (ssp1 != yyssp)
  2514.     fprintf (stderr, " %d", *++ssp1);
  2515.       fprintf (stderr, "\n");
  2516.     }
  2517. #endif
  2518.  
  2519. yyerrhandle:
  2520.  
  2521.   yyn = yypact[yystate];
  2522.   if (yyn == YYFLAG)
  2523.     goto yyerrdefault;
  2524.  
  2525.   yyn += YYTERROR;
  2526.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  2527.     goto yyerrdefault;
  2528.  
  2529.   yyn = yytable[yyn];
  2530.   if (yyn < 0)
  2531.     {
  2532.       if (yyn == YYFLAG)
  2533.     goto yyerrpop;
  2534.       yyn = -yyn;
  2535.       goto yyreduce;
  2536.     }
  2537.   else if (yyn == 0)
  2538.     goto yyerrpop;
  2539.  
  2540.   if (yyn == YYFINAL)
  2541.     YYACCEPT;
  2542.  
  2543. #if YYDEBUG != 0
  2544.   if (yydebug)
  2545.     fprintf(stderr, "Shifting error token, ");
  2546. #endif
  2547.  
  2548.   *++yyvsp = yylval;
  2549. #ifdef YYLSP_NEEDED
  2550.   *++yylsp = yylloc;
  2551. #endif
  2552.  
  2553.   yystate = yyn;
  2554.   goto yynewstate;
  2555. }
  2556. #line 871 "perly.y"
  2557.  /* PROGRAM */
  2558.